Molina had three hits and two RBIs, leading the Cardinals to a big 5-4 victory over the Pittsburgh Pirates on Saturday.
St. Louis bounced back from Friday night's 2-1 loss in the series opener and pulled within a game of Pittsburgh for the second NL wild-card spot. Jaime Garcia is expected to come off the disabled list to start Sunday's series finale against Pirates right-hander Jeff Karstens.
Molina also had two RBIs and scored a run after missing the previous three games with a sore back. The All-Star catcher hit a tiebreaking two-run double off Erik Bedard (7-13) in the fifth inning to give the Cardinals a 5-3 lead.
"Not just his presence but his production," St. Louis manager Mike Matheny said. "It's great to have Yadi back."
The Cardinals had scored just two runs in their previous two games. Batting sixth, Molina went 3 for 4.
"It feels so good," said Molina, who indicated his back was not bothering him after the game. "I was waiting for this moment the last three days. It's good to be back, it's good to get the win."
Pittsburgh loaded the bases with no outs in the ninth against Jason Motte but only managed one run on Andrew McCutchen's infield out. Garrett Jones struck out swinging and Josh Harrison bounced into a fielder's choice to end the game.
Motte fell behind 3-0 to Jones before coming back to get him. Jones took a healthy cut at the 3-0 pitch, which was fine with Pittsburgh manager Clint Hurdle.
"He's your cleanup hitter and arguably as hot as anyone we have on the team," Hurdle said.
"We're going to play the game to win it. We're not going to be afraid to make a mistake or play on our heels."
Barret Browning (1-2) pitched a scoreless inning for his first major league win. Motte earned his 28th save in 33 chances after blowing his previous opportunity Thursday against Arizona.
Motte was not dwelling on the past when he loaded the bases Saturday.
"I don't really think about the other day," Motte said. "I was out there and I was thinking, 'I got to get this guy at the plate.' That's pretty much exactly what I was thinking."
Jordy Mercer went 2 for 4 with two RBIs for the Pirates, who struck out 14 times.
Craig's second hit put runners on the corners with two down in the fifth. Bedard then walked David Freese before Molina came up with his opposite-field double to right to put St. Louis in front.
Cardinals starter Lance Lynn allowed three runs and four hits in 4 1/3 innings. He struck out eight and walked three.
Garcia is scheduled for his first start since June 5 after he was sidelined by a left shoulder strain. ... Cardinals slugger Matt Holliday snapped an 0-for-14 slide with a third-inning single. ... Edward Mujica pitched a scoreless seventh and has yet to allow a run in eight appearances with the Cardinals. ... Marte left in the sixth inning with discomfort in his right side and was being evaluated.