MIAMI (AP) â€” When Adam Wainwright missed with his first three pitches of the game, he shook his head and angrily snatched the return toss from his catcher.
After that, the All-Star right-hander had little to be unhappy about.
Wainwright matched a career best with a two-hitter for his 16th victory, helping St. Louis beat the reeling Florida Marlins 7-0 on Friday night.
Florida managed only a pair of singles off Wainwright, neither a line drive.
"That was masterful. Artistic. He had everything working," Cardinals manager Tony La Russa said. "It could be an unofficial no-hitter, because the two hits were a swinging bunt and a blooper."
When asked if he liked the idea of an "unofficial no-hitter," Wainwright laughed.
"No. I don't feel like there is such a thing," he said. "But out of respect for my manager, I'll say yes."
Wainwright (16-6) struck out seven and walked three en route to his fifth complete game and second shutout this season. He threw 110 pitches and lowered his ERA to 2.07.
"I was clicking," he said. "I was mixing in and out and changing speeds and controlling the count for the most part. ... I've felt like this all year, to be honest with you."
Wainwright also threw a two-hit shutout June 4 against Milwaukee.
Albert Pujols gave his pitcher a quick lead with a three-run homer in the first inning, his fifth in six games and 28th this year. Those runs were enough for Wainwright, but the Cardinals kept swinging and finished with 13 hits, including six doubles.
"We didn't think about who we had on the mound," Pujols said. "Our job was to score every inning if we could."
Pujols doubled home a run in the fourth, finished with three hits and was robbed of another single by shortstop Hanley Ramirez.
The Marlins played like a team deflated by the umpire's call that cost them a walk-off victory Thursday night against Philadelphia. They've lost five games in a row and have been outscored 25-7 in the first four games of their homestand.
A players-only meeting before the latest defeat failed to inspire a turnaround.
"We're flat. There's no way around it," second baseman Dan Uggla said. "This is where we show the true character of our team."
Although the home club took a drubbing, there was plenty of cheering from the crowd of 19,223, with many fans wearing red Cardinals apparel. St. Louis, 14-7 since the All-Star break, remained a half-game behind NL Central-leading Cincinnati.
Florida's Ricky Nolasco (12-8), who had won his past three starts, lasted only five innings. He allowed seven runs and 10 hits, six for extra bases.
"His breaking ball wasn't working tonight," Marlins manager Edwin Rodriguez said. "He was throwing everything hard tonight."
Nolasco trailed 3-0 before retiring a batter. He started by walking Felipe Lopez, who stole second and took third on Jon Jay's bunt single. Pujols followed with a drive to left on a 1-1 pitch.
"If you want to diagram the perfect way to play, you score early," La Russa said. "It helps."
Matt Holliday doubled home a run in the third, and the Cardinals hit four doubles â€” by Skip Schumaker, Brendan Ryan, Jay and Pujols â€” in their three-run fourth.
Pujols and Jay each had three of the Cardinals' 13 hits.
Wainwright kept the Marlins' aggressive hitters off balance with a steady diet of breaking balls. He walked Ramirez to start the game, then retired the next eight batters before Ramirez reached on an infield hit.
That was the lone hit allowed by Wainwright until Brett Hayes' bloop single to start the eighth.
"There's a reason he has the ERA he has," Uggla said. "He's good. You have to tip your cap."
Wainwright, who is 11-0 at home, improved to 5-6 on the road.
NOTES: Marlins 1B Gaby Sanchez sat out with a sore right hamstring, and CF Cody Ross sat out with a stiff neck. The status of both is day to day. ... Marlins rookie Logan Morrison batted third for the first time and went 0 for 4. ... Nolasco fell to 0-3 with a 7.06 ERA in seven games against St. Louis. ... The Cardinals improved to 41-25 in Miami.