DETROIT (AP) - Andrew Benintendi and Mookie Betts finished a homer short of the cycle as the Boston Red Sox beat the Detroit Tigers 10-6 on Saturday night.
Benintendi went 4 for 6 with two singles, a double and a triple. Betts was 3 for 5 with a single, double, triple and walk.
Jeimer Candelario homered twice for the Tigers, who lost for the 24th time in 27 home games.
For the second straight night, rain delays had the teams playing after midnight. The start of Saturday's game was delayed for more than four hours by rains that flooded part of metro Detroit.
Rick Porcello (6-7) struggled on the way to the win, but remained undefeated against his former team in five starts. He gave up six runs on nine hits in 5 2/3 innings.
Jordan Zimmermann (0-6) allowed seven runs on a career-high 13 hits in 3 1/3 innings.
Betts, who had three hits and three runs in Friday's win, hit Zimmerman's second pitch of the game for a triple. He scored on groundout by Rafael Devers for a 1-0 lead. Benintendi added a two-out triple and scored on a bloop single by Michael Chavis.
Betts got halfway to the cycle in the second, hitting a two-run double that gave Boston a 4-0 lead. Christian Vazquez followed with a two-out single, giving Betts his fifth run in the first 11 innings of the series.
The Red Sox added two more runs in the fourth. Devers started the inning with a single and Vazquez was credited with a double when no one covered second base on his base hit. Benintendi hit what appeared to be a routine fly to left but ended up with an RBI double when Christian Stewart lost the ball in the lights.
Chavis lined out to second, ending Zimmermann's night, and Brock Holt made it 7-0 with a sacrifice fly off Blaine Hardy.
Candelario hit a two-run homer in the bottom of the fourth and Harold Castro followed with a triple, but Porcello retired the next three batters to end the inning with a 7-2 lead.
Candelario's second homer, a solo shot, started a four-run sixth. Bobby Wilson's two-out, two-run single pulled the Tigers within 7-5 and ended Porcello's night.
Victor Reyes made it 7-6 with a triple. But, a throwing error by reliever Buck Farmer in the seventh allowed the Red Sox to move ahead by two runs.
The Tigers loaded the bases with one out against Josh Taylor in the bottom of the seventh, but didn't score. Eduardo Nunez made it 9-6 with an RBI single in the eighth.
Vazquez added a sacrifice fly in the ninth.
Red Sox: RHP Nathan Eovaldi (elbow) threw a bullpen session before the game and came out without pain. Eovaldi is expected to throw another bullpen during the All-Star break, with a possible rehab stint after that.
Tigers: C Greyson Greiner (back) has gone 0-7 in three rehab games with Class A Lakeland.
Because of the four-hour delay, the Tigers announced in the third inning that any fan with a ticket to the game would receive a voucher good for a free ticket to a game later this season.
Zimmermann became the first Tigers starter to allow 13 or more hits in fewer than four innings since Ralph Comstock in an 18-5 loss to the Red Sox on Sept. 12, 1913.
The teams finish the three-game series - their last game before the All-Star break - on Sunday. Former Tiger David Price (6-2, 3.33) will face a Tigers opener to be announced.