The Blue Jays, who snapped a four-game skid, rallied for a run in the ninth to tie it when fill-in closer Ryan Madson walked Lyle Overbay with the bases loaded to make it 3-3.
With one out in the 10th, Aaron Hill and Vernon Wells had consecutive singles, setting up Rolen's RBI hit against Clay Condrey.
Scott Downs earned the win with a scoreless ninth for the Blue Jays, who won for the first time in seven interleague games this season. Condrey surrendered three hits and five earned runs in one-third of an inning.
Jayson Werth hit a two-run homer for the Phillies, his 10th.
The Blue Jays tied the game against Madson, replacing Brad Lidge, who is out with a knee injury.
Wells hit an infield single, Rolen singled and Adam Lind was intentionally walked. After Alex Rios struck out, pinch-hitter Overbay worked another walked to score Wells.
Philadelphia pitchers walked 10 batters.
Werth's shot to left field off rookie Ricky Romero in the sixth inning was the Phillies 91st home run, which leads the National League, and gave Philadelphia a 3-2 lead. Romero lasted seven innings and recorded career-highs with nine strikeouts and 109 pitches.
Toronto scored a pair of runs in the fourth to jump ahead 2-1. Lind homered to right field and Kevin Millar added an RBI double.
Chase Utley singled home Jimmy Rollins, who hit a leadoff double, in the first inning.