BOSTON -- The Red Sox have found different ways to win ball games over the past month.
Their latest came thanks to relentless offense and a rare defensive feat.
Boston blew the game open courtesy of a wild fifth inning, tallying eight hits and eight runs against Cardinals starter Mike Leake and reliever Matt Bowman. It came an inning after the Red Sox turned their first triple play in six years .
The win kept Boston's lead in the AL East at 4 1/2 games over the New York Yankees. It marked the third time this season that the Red Sox have scored 10 or more runs without hitting a home run.
"I think it shows we don't have to hit homers to win ball games," Bradley said.
The Red Sox have won 11 of their last 13.
Manager John Farrell said he was most pleased to see Ramirez and Bogaerts continuing to provide pop in the middle of the order.
"Those two guys are critical to this offense," he said. "And not just the hits that they had -- the way they were able to impact the baseball and drive the ball, it was good to see."
Rick Porcello (7-14) was mostly able to cruise, giving up eight hits and three runs over seven innings to pick up the victory. He has won his past three starts after going winless for more than a month.
Leake (7-11) got the loss and has failed to win in his last four starts. He has yielded 28 hits and 15 earned runs in 15 1/3 innings over his last three outings.
"You've got a team that's swinging the bat well," Cardinals manager Mike Matheny said. "He wasn't getting a lot of chases. ... Eventually you've got to come back and challenge them."
Nearly everyone had a hand in the Red Sox's offensive onslaught in the fifth.
Eduardo Nunez and Mookie Betts reached on consecutive singles with one out, then Leake loaded the bases by hitting Andrew Benintendi's left knee with a pitch. Benintendi needed a few moments to shake off the pain before jogging to first to load the bases for Ramirez. He then promptly doubled off the Green Monster to drive in Nunez and Betts.
Bowman replaced Leake after Moreland's single and allowed a two-run double by Leon, Boston's 10th hit of the game and sixth in the inning, bringing up Bradley for the second time in the inning.
Bradley, whose fly out to left remained the only out of the inning, singled to right bringing in two more runs and Nunez followed with his second single of the inning.
Betts popped out to first for the second out, ending a run of 10 straight batters reaching base.
Before the offensive onslaught, the Red Sox turned their first triple play in six years.
With runners at first and second in the fourth inning, slow-footed Cardinals catcher Yadier Molina grounded sharply to Devers at third base. He stepped on the bag and threw to Nunez, who relayed to Moreland at first, where Molina was out on a close play.
It was the first triple play for Boston since Aug. 16, 2011, in Game 2 of a doubleheader against Tampa Bay.
"Of course there's certain times when the pressure's high," Devers said through an interpreter. "You have to make quick decisions. That just comes with the game."
Red Sox: Benintendi was pulled after the fifth, and was replaced by Chris Young. ... Farrell said Dustin Pedroia, who went on the disabled list Aug. 12 with left knee inflammation, continues to do strengthening exercises to stabilize it. But Farrell said the expectation is for his absence to last longer than 10 days.
Cardinals: Lance Lynn (10-6, 3.12 ERA) will be making his 25th start of 2017. Since July 1 he is 4-1 with a major league-leading 1.61 ERA in eight starts.
Red Sox: Eduardo Rodriguez (4-3, 3.80) went six innings to earn a win over the Cardinals on May 16. Over his last two starts he has given up just two earned runs over 12 innings. He's also limited opponents to six hits in those outings.
More AP baseball: https://apnews.com/tag/MLBbaseball
Follow Kyle Hightower on Twitter at http://www.twitter.com/khightower
Marlins to break losing streak in game against the Braves
Atlanta Braves (69-46, second in the NL East) vs. Miami Marlins (50-64, fourth in the NL East)
Dodgers play the Royals after Muncy's 4-hit game
Los Angeles Dodgers (79-33, first in the NL West) vs. Kansas City Royals (47-68, fourth in the AL Central)
Red Sox and Yankees meet, winner claims 3-game series
New York Yankees (72-42, first in the AL East) vs. Boston Red Sox (56-59, fifth in the AL East)
Cardinals and Brewers meet with series tied 1-1
Milwaukee Brewers (61-51, second in the NL Central) vs. St. Louis Cardinals (62-51, first in the NL Central)
Angels and Twins meet in series rubber match
Minnesota Twins (58-54, second in the AL Central) vs. Los Angeles Angels (50-64, fourth in the AL West)
Cubs bring 3-game win streak into matchup with the Reds
Chicago Cubs (47-65, third in the NL Central) vs. Cincinnati Reds (44-68, fifth in the NL Central)