Solo home runs by Mitch Moreland in the third and Adrian Beltre in the sixth off Chris Carpenter sparked the Texas comeback. Michael Young doubled off loser Octavio Dotel leading off the eighth.
Darren Oliver got the win in relief of C.J. Wilson, and Neftali Feliz finished for his sixth save of the postseason, striking out Albert Pujols as part of a double play when Allen Craig was caught stealing second.
Colby Lewis starts Game 6 for the Rangers on Wednesday in St. Louis, trying to wrap up their first title. Jaime Garcia starts for the Cardinals.
After Young's double, Beltre struck out and Nelson Cruz was intentionally walked.
Dotel relieved Rzepczynski and David Murphy reached on an infield single to load the bases and Napoli doubled to deep right field, making it 4-2.
Pujols drew three intentional walks, including a pass with two outs and none on in the seventh. The St. Louis slugger then nearly used his legs to put his team ahead.
Pujols was running hard on a 3-2 pitch that Matt Holliday hit for a single to left-center. Pujols chugged around the bags and third base coach Jose Oquendo initially waved him home, only to put up a late stop sign.
Would Pujols have been safe on shortstop Elvis Andrus' wide throw to the plate? Maybe. But it became moot when Lance Berkman was intentionally walked to load the bases and David Freese flied out against Alexi Ogando.
Beltre and Moreland hit solo home runs off Carpenter, helping Texas come back from an early 2-0 deficit.
Beltre made it 2-all with two outs in the sixth, dropping to one knee after following through on a meaty cut. He connected on a big curve from Carpenter, who had easily handled Josh Hamilton and Young to start the inning.
Beltre's other homers this October came in a bunch. He hit three in a first-round playoff game at Tampa Bay.
Napoli almost gave Texas a cushion later in the inning. With the crowd standing and chanting his name as "Nap-Oh-Lee" flashed on the scoreboard, the catcher's bid for a three-run homer was caught on the warning track in right-center field, just shy of the 407-foot mark.
The homer let Wilson avoid becoming the first pitcher to lose four times in a single postseason. The eccentric lefty who alternates red and blue gloves between starts had another uneven outing, working around five walks.
Wilson walked six while losing Game 1 to Carpenter and the Cardinals.
Moreland atoned for some glove woes with a home run in the third, hitting a drive halfway up the second deck in right field.
The Cardinals scored twice in the second, cashing in two leadoff walks sandwiched around a wild pitch.
Yadier Molina notched his fifth RBI of the Series with a single that left fielder David Murphy overran and fumbled for an error. Skip Schumaker followed with an RBI grounder to first that Moreland boxed around, preventing any chance at a double play.
Murphy made a diving catch to end the inning, denying Nick Punto a run-scoring hit. Punto carried his bat all the way to first base and tried to break the wood by bending it over his right thigh.
Already ahead 2-0, the Cards threatened in the third after Wilson slipped coming off the mound trying to field Rafael Furcal's leadoff bunt and made a poor, backhanded flip that skittered past Moreland. But with runners at the corners, Wilson got Holliday to bounce into a quick double play. Not so surprising, really - Wilson induced the most DP grounders in the majors this year while St. Louis hit into an NL-record 169 double plays.
Holliday flied out with the bases loaded, after an intentional walk to Pujols, to finish the fifth.
NOTES: Playing on his 34th birthday, Furcal led off the game with a liner that 3B Beltre backhanded. Furcal started Game 4 the same way. ... Wilson matched the postseason record for walks - 19 - set by Cleveland's Jaret Wright in 1997. Wilson's 11 walks in the World Series are the most since Allie Reynolds in 1951. ... Pujols flied out on a 3-0 pitch to end the first. He swung at 15 of 37 pitches on 3-0 counts this season, going 4 for 8 on the balls he put in play. ... Cardinals reliever Arthur Rhodes turned 42. He's the oldest player to celebrate a birthday while playing in the Series. Jim Palmer was 38 in 1983.