Enmanuel Valdez finished a home run short of the cycle as the host Boston Red Sox beat the Tampa Bay Rays 7-4 in spring training action Tuesday in Fort Myers, Fla.

Valdez hit an RBI single to open the scoring in the second inning, followed by an RBI triple in the third and an RBI double in the fifth. Tyler O’Neill added a two-run home run, an RBI double and three runs for Boston.

Red Sox starter Garrett Whitlock (2-0) struck out two and yielded two runs on four hits over three innings.

Jose Caballero went 2-for-3 with a solo homer and two runs for the Rays, and Jonathan Aranda had a two-run double. Ryan Pepiot (0-1) was shelled for six runs on eight hits while striking out three in 2 2/3 innings.

Pirates 6, Blue Jays 5

Liover Peguero’s two-run home run in the bottom of the eighth pushed host Pittsburgh past Toronto in Bradenton, Fla.

Oneil Cruz and Tsung-Che Cheng each hit solo homers to help the Pirates rally from a 3-0 hole. John Flowers (1-0) needed to record only one out to pick up the win.

Will Robertson hit an RBI double and Miguel Hiraldo had an RBI single in the top of the eighth to put the Blue Jays back up 5-3 before Hayden Juenger (0-1) blew the save on Peguero’s homer.

Mets 5, Yankees 4

Tylor Megill pitched three hitless innings with six strikeouts to propel the host Mets past the Yankees in Port St. Lucie, Fla.

Starling Marte, Francisco Lindor and Brett Baty had RBIs before Francisco Alvarez and Baty scored on Yankees pitcher Harrison Cohen’s fielding error to build a 5-0 lead in the third inning.

Yerry De Los Santos (0-1) gave up four runs (three earned) on three hits over two-thirds of an inning. The Yankees’ comeback fell short after Jeter Downs’ RBI double, Trent Grisham’s two-run single and Kevin Smith’s run-scoring single.

Orioles 3, Phillies 2

Albert Suarez fanned seven over three scoreless innings as visiting Baltimore edged Philadelphia in Clearwater, Fla.

The Orioles’ Diego Castillo drove in a crucial insurance run in the top of the ninth, as Pedro Martinez plated a run for the Phillies on an infield single in the bottom half.

Reliever Andrew Suarez (1-0) pitched a perfect fifth.

Jake Cave went 2-for-2 with an RBI for the Phillies. Luis Ortiz (0-1) suffered the loss after giving up a run on two hits in the sixth.

Braves 3, Tigers 0

Phillip Evans had two RBIs on a sacrifice fly and a single as host Atlanta blanked Detroit in North Port, Fla.

After Braves starter Spencer Strider finished four innings with four hits, four strikeouts and one walk, Charlie Morton (1-0) made his spring debut in relief and fanned three with two hits and two walks over 2 2/3 innings.

Six Tigers players mustered one hit apiece. Starter Reese Olson pitched three scoreless innings with two hits and four strikeouts before Joey Wentz (1-1) gave up the game’s first run in the sixth.

Marlins 2, Astros 0

Trevor Rogers and four relievers combined to help Miami three-hit host Houston in Palm Beach, Fla.

Rogers pitched the first two innings before Ryan Weathers fanned four with one hit and one walk over the next four frames. George Soriano (1-0) struck out two and earned the victory after Jonah Bride hit a solo homer to left.

Reliever Misael Tamarez (1-1) went two innings for the Astros and yielded one run on one hit, one walk and two strikeouts. Jose Abreu and Corey Julks hit doubles.

Cardinals 5, Twins 4

Paul Goldschmidt hit a solo homer and an RBI sac fly as host St. Louis held off Minnesota in Jupiter, Fla.

Miles Mikolas (1-0) struck out four over four innings, giving up two runs (one earned) and three hits. Dylan Carlson’s two-run double made it 5-1 Cardinals in the third before the Twins made a push.

Jose Miranda hit two RBI singles for the Twins after Alex Kirilloff led the game off with a homer. Starter Chris Paddack (0-1) yielded three runs on three hits and a walk while fanning two over 2 2/3 innings.