Pujols hit a first-pitch slider from Raynel Espinal 427 feet into the left-field stands for his 19th home run this season, tying the score 4-4. Pujols trails only Barry Bonds (762), Hank Aaron (755) and Babe Ruth (714) on the career list.
With 2,203 RBIs, the 42-year-old Pujols moved within 11 of Ruth for second, behind Aaron's 2,297.
Ryan Helsley struck out Kyle Farmer, Jake Fraley and Donovan Solano on nine pitches for his 18th save in 22 chances, the third immaculate inning in Cardinals history after Bob Gibson in 1969 and Jason Isringhausen in 2002.
Pujols is hitting .324 9 (45 for 139) with 15 homers and 35 RBIs in 47 games since July 10. Five of his last six home runs have come in the sixth inning or later, and his last five homers have tied the game or put St. Louis ahead.
Pujols hit a drive to T.J. Friedl at the left-field wall in the seventh. He is in his 22nd major league season and intends to retire at the end of the season.
St. Louis (85-60), which began the night with a 7 1/2-game lead over second-place Milwaukee in the NL Central, has 17 games remaining.
After Farmer homered off JoJo Romero to give Cincinnati a 5-4 lead in the seventh, Brandon Donovan walked against Ian Gibaut (1-2) leading off the bottom half, and Paul Goldschmidt and Nolan Arenado followed with consecutive RBI doubles.
Chris Stratton (9-4) got the final out of the seventh. Cardinals starter Jack Flaherty allowed four runs, six hits, two walks and two hit batters in five innings.
Goldschmidt doubled twice and got his 111th RBI.
Reds starter Fernando Cruz, wearing No. 21 to honor Roberto Clemente, retired his first five batters as an opener before hitting Pujols with a pitch and coming out of the game.
ARMS OF CHAMPIONS
Pitcher Jason Motte of the 2011 champion Cardinals and goaltender Jordan Binnington of the 2019 Stanley Cup champion St. Louis Blues threw out ceremonial first pitches.
Reds: RHP Hunter Greene (right shoulder strain) will be activated off the injured list to start the night game of Saturday's doubleheader, his first start since Aug. 1 at Miami.
Cardinals: OF Dylan Carlson (sprained left thumb) started in center field for Triple-A Memphis Friday night at Iowa and hit a pair of doubles in three at bats. He is expected to start for Memphis Saturday and Sunday and could rejoin the big league club Tuesday.
RHP Dakota Hudson (7-7, 4.43 ERA) will be recalled from Triple-A Memphis to start Saturday's day game against LHP Mike Minor (4-11, 5.78 ERA) who has not won a start against St. Louis since Aug. 25, 2013 while pitching for Atlanta. LHP Jose Quintana (5-6, 3.34 ERA), who starts the night game, is 2-1 with a 2.93 ERA in nine starts sincehe was acquired from Pittsburgh on Aug. 1.