BOSTON — Mike Napoli hit a grand slam and drove in five runs, Will Middlebrooks busted out of a slump with a three-run homer and the Boston Red Sox rebounded from a doubleheader sweep by beating the Oakland Athletics 9-6 on Monday night.

The Red Sox, swept by Kansas City in a split-doubleheader Sunday, scored three runs in the fourth and five in the fifth. Napoli’s fourth career slam keyed the five-run fifth and helped end Oakland’s eight-game winning streak against Boston.

The Athletics dropped their season-high fourth straight after being swept in a three-game series at the Tampa Bay Rays over the weekend.

Oakland’s winning streak against Boston was its longest in franchise history since the Philadelphia Athletics won eight in row in 1932.

Felix Doubront (2-0) struggled with his control, but got the win on a night with wind chills in the 30s. He allowed three runs on three hits, walking five. He also threw two wild pitches and struck out eight in 6.2 innings.

A.J. Griffin (2-1) was tagged for a career-worst nine runs — seven earned — and eight hits in four-plus innings.

Dustin Pedroia went 0-for-5, ending his streak of reaching base safely in each of Boston’s first 18 games.

Mariners 7, Astros 1: In Houston, Felix Hernandez pitched six scoreless innings for his 100th career win, and Seattle homered three times to back him.

Hernandez (2-2) joined Jamie Moyer (145) and Randy Johnson (130) as the only pitchers to reach 100 wins with the Mariners.

Hernandez allowed five hits and struck out nine to lower his ERA to 2.08.

Kyle Seager, Jesus Montero and Kendrys Morales all homered for the Mariners.

Rick Ankiel hit a solo homer for the Astros, who fell to 5-14 for the second-worst start in franchise history. They opened 4-20 in 1969, according to STATS.

ORIOLES 2, BLUE JAYS 1: In Baltimore, Nick Markakis singled home the winning run with two outs in the bottom of the ninth inning for the Orioles.

Toronto reliever Aaron Loup (1-2) began the ninth by hitting Chris Davis with a pitch. After a sacrifice bunt, Steve Pearce popped out and Nolan Reimold received an intentional walk before Alexi Casilla reached on a throwing error by shortstop Munenori Kawasaki that loaded the bases.

Markakis then sliced an 0-2 pitch to the opposite field near the left-field line.

Jim Johnson (1-1) worked a perfect ninth for the Orioles, now 5-2 on a nine-game homestand that ends Wednesday.

RAYS 5, YANKEES 1: In St. Petersburg, Fla., Matt Moore became the first Rays pitcher to win his first four starts of a season, Ryan Roberts homered twice and Tampa Bay beat CC Sabathia and the Yankees.

Moore (4-0) allowed one run, two hits, three walks and had nine strikeouts over eight innings.

Roberts connected in the first and third to help the Rays take an early 5-0 lead.

Sabathia (3-2) gave up five runs and seven hits over seven innings.

Indians 3, White Sox 2: In Chicago, Asdrubal Cabrera hit a two-run single in his return to the lineup and the Cleveland Indians used a throwing error by reliever Matt Thornton to rally for a win.

Justin Masterson (4-1) pitched seven effective innings to help the Indians win their third straight.

Cleveland had runners on first and second with one out in the eighth when Thornton threw wildly to second while trying to pick off Drew Stubbs. Both runners moved up as the ball went into center field.

One out later, Cabrera hit a liner to center to give Cleveland a 3-2 lead.