Wander Franco ended Stroman's no-hit bid in the seventh with a flared single to left field. Brandon Lowe followed with the Rays' only walk of the game, but Stroman got Randy Arozarena to fly out and Josh Lowe to ground into an inning-ending double play. Stroman (5-4) threw 105 pitches and struck out eight.
The Cubs scored their lone run in the fourth inning. Seiya Suzuki hit an infield single and reached second on third baseman Taylor Walls' throwing error on the play. He eventually scored on Mike Tauchman's sacrifice fly to right field.
Stroman's gem overshadowed the performance of Tampa Bay rookie Taj Bradley (3-2). Making his sixth major league start since debuting April 12, Bradley allowed the unearned run, plus Chicago's only three hits and a walk, while striking out eight in 5 2/3 innings.
Mike Mayers, Josh Staumont, Taylor Clarke and Amir Garrett combined to throw a two-hitter as visiting Kansas City blanked St Louis.
The Royals used Staumont as the opener in a bullpen game. He set the Cardinals down in order in the first inning, then Mayers (1-0) came on to retire the next 18 batters to take a perfect game into the eighth inning. The Cardinals finally broke through against Mayers when Nolan Arenado and Willson Contreras hit singles to open the eighth.
Vinnie Pasquantino and Michael Massey each drove in two runs for the Royals, who won their second straight game after losing seven of their previous eight.
Rookie Logan Allen threw seven shutout innings with 10 strikeouts as Cleveland defeated host Baltimore.
Allen (2-2), a left-hander, threw 103 pitches, allowing three hits and issuing two walks. He notched his first victory in more than a month since winning against Miami in his major league debut. Enyel De Los Santos and Trevor Stephan each pitched an inning of relief to complete the combined five-hitter.
Cam Gallagher drove in two runs and Will Brennan went 3-for-4 as Cleveland won for the third time in its last four games. Steven Kwan added two hits, including a run-scoring double. Baltimore righty Tyler Wells (3-2) took the loss despite giving up only one run in six innings. The Orioles have lost three of their last four games.
Corey Seager homered and drove in four runs and four pitchers combined on a shutout as visiting Texas blanked Detroit.
Texas starter Nathan Eovaldi (7-2), who has won six of his last eight starts, gave up four hits and three walks in five innings. Brock Burke pitched one inning of relief, Jonathan Hernandez took care of the seventh and eighth, and Jose Leclerc finished it off against Detroit, which totaled five hits.
Marcus Semien extended his hitting streak to 18 games with a ninth-inning single. Leody Taveras added three hits and scored a run. Detroit starter Matthew Boyd (3-4) was charged with five runs and five hits in six-plus innings.
Patrick Bailey homered and Mitch Haniger doubled twice in a 13-batter, eight-run seventh inning, helping San Francisco separate from visiting Pittsburgh in the opener of a three-game series.
Austin Slater hit his first home run of the year and joined Bailey with four RBIs for the Giants, who have won 11 of their last 14 games. Bailey, Haniger, Slater, Brandon Crawford and Casey Schmitt had three hits apiece for the Giants, who totaled 18, including eight for extra bases.
The first of Jack Suwinski's two home runs on the day opened a two-run top of the seventh for the Pirates, trimming a five-run deficit to 6-3 before the San Francisco onslaught.
Ryan Jeffers lined the first pitch of the 10th inning into the Crawford Boxes in left field and Minnesota won the opener of its three-game series with host Houston.
Jeffers' third home run of the season came against Astros reliever Bryan Abreu (2-1) and plated Max Kepler, who began the frame on second base. The Twins scored three runs off the Houston bullpen over the final two innings. Jhoan Duran (1-1) worked two scoreless innings for the Twins.
Astros second baseman Jose Altuve socked his second home run of the season - and second in as many days - with two outs and two strikes in the seventh, delivering a grand slam off Twins reliever Brock Stewart that erased a three-run deficit.
Pavin Smith belted a three-run homer to cap a five-run second inning and help Arizona beat Colorado in the opener of their four-game series in Phoenix.
Lourdes Gurriel Jr also homered, Emmanuel Rivera had two hits and two runs and Jake McCarthy added two hits and two RBIs for Arizona, which has won six of its past nine. Ryan McMahon tied his career high with four hits for Colorado. He homered, tripled, singled twice and drove in three runs.
Diamondbacks starter Ryne Nelson (2-2) allowed five runs and eight hits in five innings. He struck out one and walked three. Drey Jameson followed with 3 2/3 innings of scoreless relief before Andrew Chafin got the final out with a runner aboard for his eighth save of the season.