BOSTON -- Mookie Betts finally had a pitch he could drive and the Boston Red Sox pulled out anther last at-bat win in Fenway Park.
Betts lined a two-run double off the Green Monster with two outs in the ninth inning, capping a three-run rally that lifted the Red Sox to a 5-4 win over the St. Louis Cardinals on Wednesday night.
Xander Bogaerts opened the ninth with a solo homer for the AL East-leading Red Sox, who won for the 12th time in 14 games and maintained their 4 1/2-game lead over the second-place New York Yankees.
It was Boston's eighth walk-off win in its last 19 victories at home.
Cardinals manager Mike Matheny was ejected by home plate umpire Chris Segal in a wild ninth inning. Trevor Rosenthal gave up Bogaerts' homer into the Monster seats.
Zach Duke (0-1) struck out a batter and walked one before John Brebbia gave up Betts' hit after he laid off a pair of tough sliders, with Jackie Bradley Jr. beating a relay home with a headfirst slide for the winning run as catcher Yadier Molina dropped the throw.
"It changed the whole at-bat. I was able to force him to throw a strike," Betts said. "Anytime I get a strike, I've got a better chance to put good wood on it."
Boston Red Sox
Bradley didn't see Molina drop the throw as he slid past the plate without touching it. He had to reach back after he stopped.
"I pulled my hand back completely to try and avoid the tag," he said. "I knew I didn't tag it at first. I didn't pay attention whether he had the ball or not. I was just trying to tag the plate."
Molina was arguing with Segal before Matheny came out.
"The fact that he was kind of going at it with our catcher, you hate to see it at that particular point of the game," Matheny said. "But a lot of barking going on all game long."
It was just the third loss in 11 games for the Cardinals, who were swept in the two-game series, their first visit to Fenway Park since the 2013 World Series.
Craig Kimbrel (5-0) pitched one hitless inning for the win.
Lynn allowed two runs and seven hits, walking and striking out three.
Eduardo Rodriguez gave up four runs and eight hits in 5 1/3 innings.
Vazquez scored on a throwing error in the third when Lynn fired the ball wildly past first on Eduardo Nunez's infield hit. Betts added his sacrifice fly.
Cardinals: 1B Carpenter had his glove knocked off his left hand by Nunez, who was running down the line, and had the hand looked at briefly by the trainer, but stayed in. . Lynn struggled with a blister.
"Every once in a while you're going to get one of those," he said. "They seem to kind of fester when you don't need them to, but everything's fine."
Red Sox: Manager John Farrell said LHP David Price (left elbow inflammation) rested after throwing Tuesday. ... LF Andrew Benintendi returned to the lineup after getting hit by a pitch and leaving early Tuesday.
The Red Sox honored their 1967 AL Champs - known as the Impossible Dream team.
Led by Hall of Famer Carl Yastrzemski - a Triple Crown winner that season - there were 18 former players honored during an on-field pregame ceremony.
It's known as the team that triggered fan interest in Boston after years of small crowds.
"I think we were the ones that sparked the fire and the fire is now `Red Sox Nation' - and it's great to be a part of that," said Jim Lonborg, who won the `67 Cy Young Award.
Red Sox CF Bradley threw out Carpenter, who was on third, at the plate on Tommy Pham's bloop single.
Carpenter held on the bag, looking to tag up, and was cut down as he tried to slide around Vazquez's tag.
Red Sox: After a day off, LHP Drew Pomeranz (12-4, 3.39) looks to extend his career-best six-game winning streak when Boston faces the rival Yankees in the opener of a three-game series in Fenway.