SAN FRANCISCO — Dylan Cease of the Toronto Blue Jays delivered a near no-hit performance against the San Francisco Giants on Wednesday, leading Toronto to a 10-0 victory at Oracle Park. Cease retired 23 consecutive batters and pitched eight innings without allowing a hit before conceding a single to Heliot Ramos in the ninth inning, preserving the Giants’ streak of recording at least one hit in every game at their waterfront ballpark since its opening 26 years ago.

The Blue Jays entered the game with a five-run lead and quickly extended it in the first inning when Kazuma Okamoto hit a grand slam off Giants starter Logan Webb. Webb struggled early, allowing four runs with bases loaded on his first five batters faced. Although he settled down to retire 13 in a row at one point, the damage inflicted in that opening frame set the tone for San Francisco’s day.

Cease, who signed a seven-year, $210 million contract with Toronto this offseason, struck out 11 batters and issued three walks over eight innings. His dominant outing came just a day after the Giants lost a Rule 5 draft pick to the Blue Jays, marking a frustrating stretch for the home team’s pitching staff. Cease’s only hit allowed, a single by Ramos on the third pitch of the ninth, was greeted by a standing ovation from fans of both teams before he exited the game.

Webb’s performance marked a sharp contrast to his previous outings. After posting a 3.09 ERA through May and June, Webb has struggled in July, allowing 12 earned runs over his first two starts this month, raising his ERA to 3.86. Wednesday’s outing represented one of the worst back-to-back performances of his career as he surrendered five runs early and was unable to recover enough to keep the Giants competitive.

Despite Webb’s recovery after the first inning, the Giants’ offense remained largely ineffective against Cease. The team’s only baserunner before Ramos’s hit came in the fifth inning, when Willy Adames drew a walk after working a lengthy count. Adames also nearly spoiled Cease’s no-hitter with a softly hit ground ball in the seventh, but the ball was fielded cleanly to end the inning.

San Francisco’s current slump continues to deepen, as the team fell to 38-54 and more than 15 games below .500 for the first time this season. The loss extended the Giants’ losing streak to three consecutive series and highlighted ongoing struggles for their pitching staff, which has posted a 6.66 ERA over the past nine games, ranking near the bottom of the major leagues.

Looking ahead, the Giants have not yet announced a starter for the first game of their final series before the All-Star break, with Landen Roupp’s spot in the rotation listed as TBD. Carson Whisenhunt, currently on the taxi squad, emerges as a potential candidate to make the start against the Colorado Rockies. The Giants have also shifted Robbie Ray’s start to Friday, followed by scheduled appearances from Tyler Mahle and Trevor McDonald in the remaining pre-break games.