The Reds scored three times on just one hit in the ninth as Chicago reliever Carlos Marmol walked three, had another runner reach on an error and gave up a hit. The tying run scored on a double play.
Zack Cozart opened the Cincinnati 10th with a single off Rafael Dolis (1-2) and advanced to third when Dolis made an error on Chris Heisey's sacrifice bunt.
Rolen followed two pitches later with a fly to right, allowing Cozart to score easily.
Logan Ondrusek (2-0) was credited with the win after he pitched the 10th.
Cincinnati start Homer Bailey allowed nine hits and all three Cubs runs over six innings. Starlin Castro hit a two-out home run in the first, Bryan LaHair connected for a lead-off homer in the fourth and Geovany Soto opened the fifth with a home run. Castro has one home run this year, LaHair seven and Soto two.
Cubs starter Ryan Dempster, just activated off the disabled list, had a three-hitter through eight innings when he was lifted for Marmol in the ninth.
Marmol walked Willie Harris and Joey Votto and Brandon Phillips reached in an error that also allowed Harris to score. Jay Bruce singled, loading the bases, and Ryan Ludwick walked, forcing in a run. Dolis replaced Marmol and got a double play but the tying run scored on the play.
NASA celebrates Earth Day with #GlobalSelfie
Lytro unveils camera that can focus a photo after shooting it