Dempster (14-5) struck out 10 batters in six innings to win for the fourth time in six starts. He gave up two runs, the sixth straight game in which he has allowed two runs or fewer.
"It was a grind ... mentally and physically ... to bear down and make pitches," said Dempster, who worked through a sixth inning in which the Marlins scored once and seemed primed for more with runners on first and third with none out.
The Cubs, who had their nine-game road winning streak snapped with a 2-1 loss on Saturday, rebounded to win for the sixth time in seven games overall. Chicago began the day with a 4½ game lead in the NL Central.
"A 5-1 road trip -- you gotta be pleased," Cubs manager Lou Piniella said. "The position we're in, winning series is what we're shooting for."
The third-place Marlins lost for the fourth time in five games to fall 4½ games behind the New York Mets in the NL East.
"Its been a tough stretch," Marlins manager Fredi Gonzalez said. "Everybody goes through it. Well go out on the road and try to turn this thing around."
Trailing 2-0 in the seventh, the Cubs sent 12 batters to the plate.
Soriano then hit a liner to left that fell in front of diving Luis Gonzalez to go for a double that scored Fontenot and Johnson to tie the score. After Ryan Theriot grounded out, Derrek Lee was walked intentionally to load the bases.
Ramirez then smashed a 3-2 pitch to the right of third baseman Jorge Cantu to score DeRosa and Soriano for a 4-2 lead.
"Through three at-bats I didn't feel too good but I got a hit at the most important part of the game," Soriano said.
Gonzalez refused to second guess his decision to dive, which resulted in the ball bouncing away from the left fielder.
"If I make the play, its a great play. If not, like today, I'm sure somebody is going to call and say, 'You should have stayed back.' That's baseball," Gonzalez said.
Following Kosuke Fukudome's sacrifice fly and a walk to Geovany Soto, Logan Kensing replaced Pinto. Kensing walked pinch-hitter Ronny Cedeno before yielding Johnson's bases-clearing double to deep left-center that made the score 8-2.
"Those are guys that can swing the bat and hit the ball out of the park, so you never know. You want to keep tacking on runs when you play a team like that," said Johnson, whose four hits included two doubles.
Volstad was charged with two runs and six hits in six-plus innings. Pinto gave up five runs in two-thirds of an inning. It was the third straight appearance in which Pinto has allowed at least a run, and he has allowed 11 earned runs in 3 2/3 innings in August.
The Cubs' highest-scoring inning of the season was a nine-run frame against the Chicago White Sox on June 21. They now have 36 come-from-behind wins.
The Marlins runs scored on John Baker's third-inning groundout and Gonzalez's sixth-inning double.
DeRosa had a sacrifice fly in the ninth.
Florida's Jacobs and Uggla each struck out four times.
- Florida's Jeremy Hermida was 0-for-17 on the homestand before his single leading off the fifth.
- The Cubs tied a season-high with six doubles.
- Chicago is 6-0-1 in its last seven series.
- Pinto stood at his locker following the game but ignored questions asked of him.