MIAMI (AP) -- Rookie Jose Fernandez outpitched a rusty Jake Westbrook, and the team with the worst record in the majors beat the team with the best record.
Fernandez had a career-high 10 strikeouts in seven innings Friday, and the Miami Marlins spoiled Westbrook's return from an elbow injury by defeating the St. Louis Cardinals 5-4.
The 20-year-old Fernandez (4-3) became the first pitcher under the age of 21 to strike out 10 or more since Felix Hernandez with Seattle in 2007. Relying heavily on breaking balls, he threw a career-high 107 pitches and allowed three runs, two earned.
Westbrook (2-2), who had been sidelined with elbow inflammation, went five innings in his first game since May 8. He allowed five runs, two of them unearned because of a misplayed grounder by second baseman Matt Carpenter, and his ERA rose to 2.05.
Fernandez settled down after giving up two runs and three hits in the first inning. He had a 1-2-3 third, striking out Carlos Beltran, Matt Holliday and Allen Craig.
The right-hander improved to 4-1 over his past eight starts with a 2.42 ERA. Fernandez also singled home a home, while Giancarlo Stanton had three hits, including a two-run double.
The Marlins won despite going 2 for 15 with runners in scoring position. They've won seven of their past 13 games, their best stretch this season.
Beltran singled in the fifth to extend his hitting streak to 13 games, but Marlins relievers retired the final five batters. Steve Cishek pitched a perfect ninth for his eighth save in 10 chances.
Plate umpire Phil Cuzzi reversed himself on a call in the fifth, which led to a Marlins run. When Ed Lucas tried to bunt, Cuzzi initially said the pitch had been fouled, but after Marlins manager Mike Redmond argued, the ump ruled the pitch had hit Lucas' right hand, and he was awarded first base.
Lucas then scored on Stanton's double to make it 5-2.
Carpenter mishandled Derek Dietrich's grounder for an error to start the second inning, and Miami went on to score two unearned runs. Jeff Mathis had an RBI groundout, and Fernandez followed with a two-out run-scoring single.
Miami went ahead to stay in the fourth on a single by Dietrich and a run-scoring double by Greg Dobbs.
The Cardinals scored in the first on consecutive RBI singles by Craig and Yadier Molina. The hits came after an error by third baseman Lucas, and one run was unearned.
Jon Jay had a two-out RBI double for the Cardinals in the sixth. David Freese doubled home a run in the eighth.
NOTES: Marlins RHP Nathan Eovaldi, who is on the disabled list with biceps tendinitis, is scheduled to make his season debut Tuesday at Arizona. ... New Dolphins WR Mike Wallace threw out the first pitch. ... The Cardinals rank last in the majors with 18 stolen bases. ... The Cardinals fell to 48-29 in Miami.