BALTIMORE – It was a wild half inning that had a little bit of everything — three straight homers, a grand slam and eight runs before there was a single out, and a pitcher ejected for hitting a batter.

Miguel Cabrera’s grand slam capped an eight-run fourth inning for the Detroit Tigers, who cruised past the Baltimore Orioles 10-3 on Saturday to snap a four-game losing streak.

Justin Verlander (7-4) allowed three runs and eight hits in seven innings to win his third straight start and improve to 8-0 lifetime against Baltimore. But his performance was secondary to that of the Detroit offense, which built a 9-1 lead in the pivotal fourth.

After Victor Martinez opened the inning with a home run off Hammel, Jhonny Peralta followed with a shot to left and Alex Avila made it three in a row with a drive to center. Jason Hammel’s next pitch struck Matt Tuiasosopo in the left shoulder, then ricocheted off the flap of his helmet.

Home plate umpire Hunter Wendelstedt immediately tossed the right-hander from the game.

Hammel, who had already issued three walks, argued the ejection. So did Orioles Manager Buck Showalter. But the decision stood.

“I’m not going to make a big deal of it. I hit him with a slider,” Hammel said. “Zero intent there to hit him. Obviously I give up three home runs, but I’m not the guy that answers getting hit around with hitting somebody. That’s bush league if you ask me. It was a mistake. A slider that got away.”

ROYALS 4, RANGERS 1: Robbie Ross hit David Lough with a pitch with the bases loaded to force in the go-ahead run in the 10th inning as Kansas City won at Arlington, Texas.

TWINS 5, MARINERS 4: Ryan Doumit’s two-run triple off Tom Wilhelmsen with one out in the ninth inning gave Minnesota a victory over visiting Seattle.

INDIANS 5, RAYS 0: Ubaldo Jimenez pitched eight innings, and Jason Giambi and Asdrubal Cabrera each hit a two-run homer in Cleveland’s win over visiting Tampa Bay.

ATHLETICS 4, WHITE SOX 3: Hector Santiago walked Josh Reddick with the bases loaded and two outs in the 10th inning to force home the winning run at Oakland, Calif.

NATIONAL LEAGUE

CARDINALS SWEEP GIANTS: Adam Wainwright struck out 10 in his third complete game this season, and St. Louis completed a day-night doubleheader sweep of visiting San Francisco, 8-0 and 7-1.

Wainwright (8-3) allowed eight hits and one run without walking a batter.

Rookie Shelby Miller pitched six-hit ball for seven innings, and backup catcher Tony Cruz hit two doubles and drove in a pair of runs in the opener.

BRAVES 2, NATIONALS 1: B.J. Upton returned to the lineup with two hits, including a game-ending single in the 10th inning.

MARLINS 8, METS 1: Jose Fernandez pitched seven scoreless innings and had two hits with an RBI to help Miami win at home.

ROCKIES 7, DODGERS 6: Dexter Fowler’s RBI single down the first-base line in the 10th inning lifted Colorado past visiting Los Angeles.

BREWERS 4, PHILLIES 3: Jonathan Lucroy homered, Wily Peralta tossed seven strong innings and Milwaukee held off a ninth-inning rally at Philadelphia.

REDS 2, PIRATES 0: Mike Leake worked six scoreless innings as Cincinnati won at Pittsburgh.