Scott Cousins' bat was a welcome addition to Miami's sputtering lineup.

The center fielder had his first hits in more than a year, going 3 for 7 and delivering an RBI triple in the 15th inning that sent the Marlins to a 4-3 victory over the Tampa Bay Rays on Saturday night.

Former Ray Justin Ruggiano doubled with one out and raced home when Cousins, playing his second game since being recalled from the minors, sent a pitch from Brandon Gomes (1-2) down the right-field line.

Cousins also doubled and scored in the second and singled in the third while setting a career high with three hits. His previous hit was a pinch-hit single during the seventh inning of the Marlins' 3-2 loss at the Los Angeles Dodgers on May 27, 2011.

Cousins had gone 0 for 14 in his previous 14 games and had a total of three hits over his previous 35 games combined.

"It was great. Hopefully I can be that piece that gets the cylinders running," Cousins said. "I was able to do my part tonight, thankfully. Definitively a collective effort. The pitching kept us in this one. The pitching was awesome."

Ryan Webb (3-1) pitched three scoreless innings for the victory. Heath Bell struck out the side for his 14th save in 18 opportunities for Miami, which won for just the second time in its last 11 games.

"I think it was a pretty big win," Bell said. "It could be a turning point for us."

The Marlins beat their intrastate rivals for the first time in five meetings this year, ending an eight-game losing streak in the annual Citrus Series dating to May 2011. It was Tampa Bay's longest winning streak ever against a NL opponent.

"A big game for us," Marlins manager Ozzie Guillen said. "Every time you play a game like that, 14, 15, 16 innings and you come out winning, people come out of the ballpark very excited and ready for the next day."

A night after being limited to one hit in an 11-0 loss, the Marlins scored three unearned runs in the first two innings against James Shields. It looked as if that might be enough support for Anibal Sanchez until Tampa Bay methodically rallied to make it 3-3 in the seventh.

Jose Molina sparked the comeback with an RBI single in the third, then hit a solo homer off Sanchez in the fifth. Sean Rodriguez hit a two-out RBI triple against Steve Cishek in the seventh, driving in Carlos Pena after he reached on a leadoff single.

Jose Reyes drove in two runs and scored on a throwing error to help the Marlins build their early 3-0 lead against Shields, who allowed eight hits, walked one and struck out five in 7 2-3 innings.

Sanchez, who lost to the Rays and Shields six days earlier in Miami, yielded three runs and four hits in 6 1-3 innings. Cishek and Edward Mujica, who worked three scoreless innings, kept Miami in the game while the Marlins offense continued to sputter.

Miami went 2 for 15 with runners in scoring position and wasted opportunities to take the lead in the ninth, 12th and 13th innings. The Rays also squandered a chance to win it in the 10th when B.J. Upton came to the plate with two runners on and grounded into an inning-ending 5-3 double play.

Reyes led off the game with a single and scored Miami's first run from second base on a throwing error by third baseman Rodriguez. The Marlins star added a two-run single in the second after right fielder Matt Joyce dropped Gaby Sanchez's fly ball for an error and Cousins hit a ground-rule double down the right-field line.

Reyes tripled off the top of the wall in right-center with two outs in the 13th. The Rays escaped when ex-Marlin Burke Badenhop struck out Hanley Ramirez to end the inning.

The three unearned runs allowed by Shields hiked his season total to a major league-leading 12 this season, all in his past nine starts. He allowed five unearned runs in 33 starts last year.

NOTES: Molina's homer was his first since May 8. ... Ramirez returned to Miami's lineup after sitting out Friday night, when a ball hit him in the nose during batting practice in a cage. ... The Marlins placed reliever Sandy Rosario on the 15-day disabled list with a strained right quadriceps and recalled pitcher Chris Hatcher from Triple-A New Orleans. ... Rays 3B Evan Longoria, on the 15-day DL since May 1 with a partially torn left hamstring, played his first game since beginning a rehab assignment for Triple-A Durham. He served as the designated hitter and went 1 for 4 at Lehigh Valley. ... Tampa Bay's 11-run outburst Friday night ended a streak of 133 consecutive homes games without scoring 10 or more runs. It was the longest stretch in the major leagues since Houston went 268 home games without scoring 10 or more from 1980-84.