The Marlins trailed by three runs going into the bottom of the seventh, but got a solo homer from Gaby Sanchez in that inning and an RBI single from Cody Ross in the eighth.
Embattled Philadelphia closer Brad Lidge (0-8) was brought on to protect the lead in the ninth, but suffered his 11th blown save in 42 opportunities this season.
After Ross Gload doubled to open the ninth, Chris Coghlan was retired on a fly ball to right and John Baker struck out looking. Hanley Ramirez worked a six-pitch walk and Cantu singled to center on a 1-0 pitch to bring home Gload with the tying run.
Carroll, batting as a pinch-hitter, swung and missed at Lidge's first two offerings before driving a single to center that brought home Ramirez.
The comeback made a winner out of Dan Meyer (3-1), who worked the top of the ninth.
Philadelphia wasted a four-RBI effort by Ryan Howard, whose two-run homer in the seventh gave the Phillies a 6-3 lead.
The Phillies saw their lead over Florida in the National League East trimmed to 6 1/2 games. Philadelphia has 11 games left to play.
Copyright 2009 by United Press International.