MIAMI -- Starting pitcher Ricky Nolasco shut down the powerful St. Louis offense as the Miami Marlins defeated the Cardinals 7-2 Sunday at Marlins Park.
The Marlins, who own baseball's worst record at 21-47, took the three-game series (2-1) from a Cardinals team that is atop the major-league standings at 44-25.
It was the first time this season that the Marlins had a won a series against anyone other than the New York Mets.
St. Louis, meanwhile, had gone undefeated in its past 14 series (11-0-3).
The Cardinals, who lead the National League in scoring and batting average, were held to five hits by Nolasco and relievers Mike Dunn, Chad Qualls and Steve Cishek. Two of the hits and one of the runs came off Qualls in the ninth.
The Cards gave catcher Yadier Molina and left fielder Matt Holliday a rest from the starting lineup. But, trailing 7-2 with two on and two out in the ninth, Molina came in as a pinch-hitter and drew a walk to load the bases.
Holliday followed, also as a pinch-hitter, and struck out looking at a 2-2 pitch against Cishek, who faced one batter and got his ninth save.
Nolasco (4-7) pitched seven strong innings, allowing three hits, one walk and one run. It was the first time this year that he gave up three hits or fewer in seven or more innings.
He also benefited from some good defense, notably a run-saving catch by Giancarlo Stanton. The right fielder made a leaping grab up against the fence on a Matt Adams seventh-inning drive.
Offensively, the Marlins got two RBIs each from Juan Pierre, Justin Ruggiano and Placido Polanco.
Pierre singled in the first inning to extend his hitting streak to 12 games. He advanced to third when Stanton doubled off the fence in left field, and both runners scored on Ruggiano's single to right-center.
The Cardinals scored once in the third inning. Backup infielder Daniel Descalso, who started at second base Saturday and at shortstop Sunday, singled to right to lead off the inning. He went to second on a sacrifice bunt and to third on a wild pitch before scoring on Jon Jay's single to left.
Pierre gave the Marlins a 4-1 lead in the fourth, stroking a two-out, two-run single to right.
The Marlins added two more runs in the fifth. Ruggiano reached on a bunt hit and got to third on a hit-and-run single by Adeiny Hechavarria. With a 2-1 count and Hechavarria on the move, Polanco doubled to center to make it 6-1.
Rookie Derek Dietrich hit a one-out double in the seventh and scored on Hechavarria's single to make it 7-1.
NOTES: Cardinals right fielder Carlos Beltran (0-for-4) had his 14-game hit streak snapped. ... The Cards' bullpen gets a major assist from the Marlins, who traded Edward Mujica to St. Louis last year for minor-league third baseman Zack Cox. When closer Jason Motte got hurt in March, Mujica stepped in and has gone 19-for-19 in save chances this year. Motte is out for the season. ... In addition to Mujica, lefty Randy Choate -- another former Marlin -- has been effective as a set-up reliever. ... Slumping Marlins rookie Marcell Ozuna (one hit in his past 20 at-bats) was given a rest Sunday with Ruggiano starting in center field. ... Third baseman Polanco (back injury) returned to the starting lineup for the first time since Monday. ... Marlins first baseman Logan Morrison (back injury) missed his fourth straight start. ... Saturday marked the first time in club history that both the Marlins and their opponent batted around in the first inning. ... Marlins' third-string catcher Miguel Olivo told The Miami Herald that he asked for his release three times but was denied at every turn. Finally, he walked out on the team after batting practice Friday, leaving the Marlins short on the bench. The Marlins placed him on the unpaid restricted list and still own his rights. ... Next up for the Cardinals is a seven-game homestand that starts with four against the Cubs and ends with three vs. Texas. ... Next up for the Marlins is a seven-game road trip that starts with three at Arizona and ends with four at San Francisco. ... Attendance Sunday was 18,468.