Updated

ST. LOUIS (AP) — Hanley Ramirez returned to the Florida Marlins' lineup with three hits and Anibal Sanchez threw seven impressive innings Wednesday night in a 5-1 victory over the St. Louis Cardinals.

Ramirez was yanked from Monday's game for loafing and benched Tuesday after criticizing manager Fredi Gonzalez and teammates. The two-time All-Star apologized individually to the Marlins before the game.

Ramirez was booed before three of his first four at-bats. The reigning NL batting champion answered with three singles, two of them infield hits, and drove in a run.

Dan Uggla homered for the second straight game for Florida, which has won six of seven. The Cardinals lost for the first time in three games since Albert Pujols was moved to cleanup.

Cardinals rookie Jaime Garcia worked five scoreless innings and has not allowed a run in 19 innings at home. He escaped trouble in all but one inning, stranding nine runners, although the outing was his shortest of the year by an inning.

Sanchez (3-2) didn't give up a hit his last four innings and won his second straight start. He struck out Colby Rasmus all three times.

Matt Holliday had two hits batting third for St. Louis, but struck out in the eighth against Clay Hensley with two on and none out to fall to .160 (8 for 50) with runners in scoring position. Pujols followed with a double-play ball.

The Cardinals have totaled four runs on 12 hits the last two games.

Garcia and the Marlins' Jorge Cantu are both from Reynosa, Mexico. Cantu tipped his helmet toward the mound before getting an infield hit in the first and was 2 for 3 against the 23-year-old left-hander.

Sanchez, a career .079 hitter, walked on a full count against Blake Hawksworth (0-2) to load the bases ahead of Chris Coghlan's sacrifice fly to open the scoring in the sixth. Ramirez added his second RBI in nine games with an infield hit, and Hawksworth surrendered homers to Uggla and Cameron Maybin in the seventh.

Rasmus doubled and scored on David Freese's single off Burke Badenhop to open the ninth.

NOTES: Ramirez batted .143 (3 for 21) last year against the Cardinals. ... The Marlins are 8-2 when Uggla homers. ... Rasmus batted .400 (8 for 20) last year against the Marlins with two homers, seven RBIs and no strikeouts.