MIAMI -- Kip Wells grinned, pumped his fist and sprinted to the dugout. He hadn't won yet -- he had only completed a hitless first inning.
There hasn't been much for him to celebrate lately, so he tried to soak in the moment, not knowing how long it would last.
Wells (4-12) struck out four and walked two to win for the first time since he threw two shutout innings in relief against Kansas City on June 20. It was his first win in a start since he beat Pittsburgh on May 23.
"People will kind of wonder how can pump your fist after the first inning," Wells said. "That's what happens after my previous starts."
Juan Encarnacion went 3-for-4 with three RBI, and So Taguchi added two hits and two RBI for the Cardinals, who chased struggling Florida starter Dontrelle Willis in the fourth. Albert Pujols also had two hits and drove in a run.
The outing was the longest of the season for Wells, who lowered his ERA from 6.25 to 5.75. He's tied for the major league lead in losses and had failed to win his previous six starts, but looked sharp against Florida.
"He was fooling hitters all night," Cardinals catcher Yadier Molina said. "This game is going to bring his confidence back."
Troy Percival worked a scoreless ninth to complete a three-hitter.
Wells retired only three batters in his previous start, but said he has felt good in recent outings despite the winless streak.
"I can pitch as good as I want, but it comes down to results," Wells said.
Willis (7-9) was charged with six runs and 11 hits in three-plus innings, and drew a smattering of boos from the home crowd for the second straight outing. He hasn't won in his past nine starts, the longest winless streak of his career. Willis' last win came May 29 and he hasn't won at home since April 23, going 0-6 at Dolphin Stadium since.
Excluding two starts where Willis left early due to injuries, the three-inning stint was his shortest since getting only seven outs against the Philadelphia Phillies last July 29. His ERA rose to 5.13.
"I'm working hard," Willis said. "I'm leaving my heart on the field. If they boo or not, I don't have anything to hold my head down about. I can look in the mirror."
Marlins manager Fredi Gonzalez said he can't afford for the team to have Willis miss a start. Gonzalez also said the left-hander is healthy -- it's Willis' pitching that's not.
"We've got to get him right," Gonzalez said. "Obviously he's not right, whether it's his mechanics or whatever it may be."
Renyel Pinto pitched three hitless innings in relief for Florida. He struck out four and walked two.
Pujols and Encarnacion hit back-to-back RBI doubles to give the Cardinals a 2-0 lead in the first.
Taguchi hit a two-run double and Encarnacion singled in two more runs to stretch the Cardinals' lead to 6-0 in the second.
The Marlins said they'll reinstate OF Cody Ross from the disabled list before Thursday's game and option OF Eric Reed to Triple-A Albuquerque. ... Marlins SS Hanley Ramirez went 0-for-4 to end his nine-game hitting streak. ... All nine St. Louis starters batted from the right side of the plate, a move made to challenge the lefty Willis. ... Marlins 2B Dan Uggla was out of the lineup for the first time all season. Uggla played in the first 94 games this year.