At long last, St. Louis pushed back.
The victory was the first by the Cardinals against Liriano, who went 4-0 with a 1.16 ERA against St. Louis last season, including a triumph in Game 3 of the NL division series.
"He's tough, man, but he caught a lot of the plate with his pitches tonight, especially in the first inning and then on the home run," Molina said. "He's a tough pitcher and we kind of caught him when he wasn't at his best."
Molina finished 2 for 4 and his solo homer in the sixth gave the Cardinals plenty of cushion as they bounced back from a 12-2 loss on Friday by not waiting around for Liriano to get into a rhythm.
St. Louis used a three-run first inning to put the Pirates in a quick hole then held on as Joe Kelly (1-0) shook off some rust in his first start of the season. The right-hander worked 5 1/3 innings, walking four and striking out four.
"I made some good pitches when I had to but I struggled a little with my command from time to time," Kelly said. "It seemed like when I really needed to make a pitch I was able to do it and avoid getting into big trouble."
The Pirates had their chances. They loaded the bases in the third but managed only a single run when Kelly walked Russell Martin. Pittsburgh left 11 runners on base, including seven in the first four innings.
"We had opportunities to cash in and we weren't able to do it," Pirates manager Clint Hurdle said hours after agreeing to a contract extension that will keep him in Pittsburgh through at least 2017.
St. Louis reliever Carlos Martinez, who typically works the eighth inning, replaced Kelly with two on and one out in the sixth and retired Starling Marte and Travis Snider on groundouts to end the threat.
"It was a part of the game where it could have gone in a different direction fast," St. Louis manager Mike Matheny said. "Carlos came out and did exactly what we needed him to do."
Liriano, who struck out 10 in six innings on opening day against the Cubs, settled down after initial command issues. He surrendered four runs on seven hits in six innings, walking two and striking out four.
"They've got some good hitters and they hit some good pitches down and I made a couple of mistakes too," Liriano said after falling to 9-2 in his career at PNC Park. "That's part of the game. Just one of those nights."
It wasn't exactly a repeat of the last time Liriano faced St. Louis, when he held the Cardinals in check in Game 3 of the NL division series to give the Pirates a 2-1 lead in the best-of-five series.
St. Louis rallied to take the series in five games and six months later it appears the clubs that finished one-two in the NL Central remain evenly matched. The teams have now split the last 26 meetings.
For once, however, the Cardinals got the best of Pittsburgh's ace by not messing around while he dealt with location issues in the first.
Matt Carpenter led off with a single. Peralta walked and Matt Holliday followed with an RBI single to right. Peralta scored on a sacrifice fly by Allen Craig, with Holliday scoring on a perfectly placed single to left by Matt Adams.
Molina provided insurance with a homer to right and Peralta's second home run with the Cardinals slipped inside the left field foul pole against Pittsburgh reliever Jeanmar Gomez in the ninth.
That was more than enough for a bullpen that didn't surrender a hit in 3 2/3 innings of work.
Marte went 1 for 5 and has reached base in each of his 17 career games against St. Louis. ... St. Louis reliever Jason Motte, who is recovering from Tommy John surgery on his right elbow, participated in a simulated game in Florida on Saturday. Matheny said the team doesn't have a pre-determined role set for Motte, who saved 42 games in 2012 before the injury. ... The series concludes on Sunday when Adam Wainwright (1-0, 0.00) is set to go for St. Louis against Edinson Volquez (0-0, 0.00), who pitched two innings of relief in a loss to the Cubs on Thursday.