The Pirates moved into a tie for the lead with St. Louis in the National League Central, scoring two runs in the first and then relying on an outstanding effort by Liriano.
St. Louis suffered its second straight shutout, having been overwhelmed by Cincinnati 10-0 on Thursday.
Liriano (15-6) walked two and struck out six. No St. Louis runner reached second base while he was on the mound.
Garrett Jones had three of Pittsburgh's nine hits and drove in four runs. He had a two-RBI double in the first, hit a solo homer in the fourth and contributed a run-scoring single in the fifth.
Russell Martin added a solo blast for the Pirates in the fourth.
All of the Pittsburgh runs were given up by Shelby Miller (12-9), who surrendered eight hits with three walks in 4 1/3.
The victory was the 78th for the Pirates, moving them within four of clinching their first winning season in 21 years.
Exploding whale video goes viral on Internet
Obama 'selfie' photographer speaks out: 'Photos can lie'