Gabriel Moreno started the ninth-inning rally when he was walked by Colorado closer Pierce Johnson (0-2) with one out. Ketel Marte followed with his second double of the game one out later to move Moreno to third. Carroll then ripped his walk-off single to center field to plate both Moreno and Marte.
The victory completed Arizona's first sweep of the season, as the Diamondbacks took four games from the Rockies.
Harold Castro, Nolan Jones and Brenton Doyle each had two hits and an RBI to lead Colorado. Rockies left fielder Jurickson Profar's 37-game on-base streak was snapped due to an 0-for-4 performance. It was the longest streak in the majors this season.
Fernando Tatis Jr drove in four runs and Joe Musgrove took a no-hitter into the sixth inning as San Diego defeated host Miami.
Tatis went 3-for-4 with three doubles, two runs and one walk. Musgrove (3-2) went six innings, allowing an unearned run, three hits and three walks while fanning three.
Jesus Luzardo (4-4) allowed five runs, four hits and one walk for Miami. The Marlins scored their lone run in the third. Jonathan Davis walked, stole second, took third on catcher Austin Nola's throwing error and scored on Luis Arraez's sacrifice fly. Arraez also broke up the no-hitter with an infield single in the sixth.
Kevin Gausman struck out 11, Matt Chapman hit a two-run home run and host Toronto defeated Milwaukee.
Bo Bichette added a solo home run for the Blue Jays, who took two of three from the Brewers. Gausman (4-3) allowed no runs, five hits and two walks in 6 2/3 innings.
The Brewers have dropped five of their last seven games in losing their past two series. Starter Freddy Peralta (5-5) allowed three runs, six hits and two walks while striking out three in six innings.
Max Scherzer tossed seven strong innings for a second consecutive start and Mark Canha continued tormenting Philadelphia by hitting another two-run home run as host New York completed a three-game sweep.
Scherzer (5-2) allowed two runs (one earned) on five hits and one walk while striking out nine. Jeff McNeil had an RBI single in the third before Canha hit the go-ahead two-run homer to left off Taijuan Walker (4-3) in the fourth.
Nick Castellanos had three singles and a sacrifice fly for the Phillies, who have dropped four straight and 12 of 17.
Willi Castro hit a walk-off sacrifice fly in the ninth inning as Minnesota rallied to defeat Cleveland in the opener of a four-game series at Minneapolis.
Royce Lewis hit a game-tying, two-run homer in the eighth and Michael A. Taylor also homered for the Twins. Griffin Jax (3-6) picked up the win with a scoreless inning of relief.
Mike Zunino had a two-run single to highlight the Guardians' five-run sixth inning. Will Brennan and Gabriel Arias each added two hits apiece for Cleveland.
Chris Sale exited the game early due to soreness in his left shoulder, but host Boston ended a three-game losing streak by beating Cincinnati.
Sale allowed a run on five hits in 3 2/3 innings. Chris Martin (1-1) gave up one run in one inning but was credited with the win. Enrique Hernandez homered, singled and drove in three runs for the Red Sox.
It was a 2-2 tie until Boston scored six runs in the bottom of the eighth inning. All six runs of those runs were charged to Kevin Herget (1-2) as the Reds' five-game winning streak ended.
Alex Bregman produced a two-run, two-out single to cap a three-run fifth inning as host Houston won the opener of a four-game series against Los Angeles. Kyle Tucker contributed three hits for the Astros.
Houston's Ronel Blanco (1-0), called up pregame to make his first major league start, gave up two runs on seven hits and three walks with five strikeouts in 5 1/3 innings. Ryan Pressly pitched a scoreless ninth for his 11th save.
Brandon Drury homered and Hunter Renfroe had three hits for the Angels. Reid Detmers (0-6) yielded four runs on six hits in five innings.