BOSTON - Xander Bogaerts added another clutch hit to his case for a spot in the All-Star Game.

Bogaerts drove in three runs with a bases-loaded single, and the Boston Red Sox rallied to a 4-3 win over the Miami Marlins on Tuesday night.

Bogaerts, one of five candidates for the final opening on the AL team, went 2 for 4 to raise his batting average to .304. His big single in the seventh closed out his first look at Carter Capps, a hard-throwing reliever with a quirky delivery that falls somewhere between overhand and sidearm.

"A lot of guys would want to hit with the bases loaded, for sure, but I'm not sure too many against that guy," Bogaerts said. "You don't know what to expect until you're up there hitting. I faced a few guys that throw really hard, but they have normal deliveries."

Bogaerts fouled off three straight pitches with a full count before lining a go-ahead single past second baseman Dee Gordon.

After falling behind Bogaerts 2-0, Capps was careful not to walk in a run and face slugger David Ortiz with the bases loaded again.

"Obviously I know who's on deck right there so I'm going to challenge him," Capps said.

Wade Miley struck out nine and Travis Shaw picked up his first three major league hits, including a one-out single to start Boston's comeback in the seventh.

Boston has won three straight and seven of nine, slowly making up ground in the AL East standings. The Red Sox are still in last, but only five games out of first place.

"Lately we've been playing really good," Bogaerts said. "Definitely the momentum, the vibe, everything in the clubhouse has changed. That's what comes with winning."

Junichi Tazawa (1-3) picked up the victory with 1 1/3 innings of scoreless relief, and Koji Uehara pitched a perfect ninth for his 20th save.

Christian Yelich had three hits and two RBIs for Miami, including a run-scoring double in the Marlins' two-run seventh. Cole Gillespie also had a run-scoring double to help Miami open a 3-1 lead.

"Frustrating loss, no doubt about that," manager Dan Jennings said. "We battled. We didn't get it done in that seventh inning when we had a chance to finish it out."

Shaw started the seventh inning rally with a single. Ryan Hanigan walked and Mookie Betts reached on an error by third baseman Miguel Rojas, loading the bases with one out for Bogaerts.

Mike Dunn replaced Steve Cishek (2-6) and struck out Brock Holt, and then the Marlins brought in Capps to face Bogaerts.

Dan Haren allowed one run and six hits in six innings for the Marlins.

THE STREAK

Boston matched a season high with its third consecutive win. The Red Sox are the only team in the majors without a four-game winning streak, something they can change Wednesday in the finale of the two-game interleague series.

CAPPS CARES

Capps didn't take the loss, but tried to claim it in the locker room. He started Bogaerts off with two straight balls and fell behind 3-1.

"I came in to face the righty," Capps said. "It's my job to get the job done right there and I just didn't."

WELCOME BACK:

Shaw, recalled from Triple-A Pawtucket on Tuesday, was hitless in nine career at-bats heading into his seventh big league game. He singled in the second, and then hit a shot off the wall in centre that turned into a very long single when he slipped while rounding first. Shaw added his third single to start the rally in the seventh and finished 3 for 4.

TRAINER'S ROOM

Marlins: 1B Jeff Baker left after the top of the second with what the Marlins described as oblique pain. Michael Morse started in left field, and then took over for Baker at first and veteran Ichiro Suzuki played left.

Red Sox: 2B Dustin Pedroia (strained hamstring) is eligible to return from the DL on Friday when the Red Sox open a three-game series at home against the New York Yankees. Manager John Farrell said the club knows Pedroia will be back in the lineup the first chance he is ready, but his status for the weekend remained uncertain.

UP NEXT

Marlins: RHP Tom Koehler (7-4) faces the Red Sox on Wednesday night for the first time in his career.

Red Sox: RHP Rick Porcello (4-9) tries to snap a career-high seven-game losing streak one week after allowing seven earned runs and seven hits, including three homers, at Toronto.