Liriano (11-4) struck out eight and walked just two to win his fifth straight start. The Pirates kicked off the key series at PNC Park by sending the Cardinals to their fourth straight loss to pull within a half-game of the lead in the NL Central.
Clint Barmes doubled twice and drove in two runs for Pittsburgh. Andrew McCutchen added two hits and an RBI.
Jake Westbrook (7-5) continued to struggle against the Pirates. He fell to 1-8 against Pittsburgh in his career after surrendering four first-inning runs. Matt Carpenter and Shane Robinson hit RBI singles for St. Louis, which has scored just four runs during its longest losing streak of the season.
Pittsburgh manager Clint Hurdle stressed the need to not place too much focus on a late-July series. Maybe, but with the Pirates chasing their first playoff berth in 21 years and a chance to make inroads on the team with the best record in baseball, the game had an electricity typically reserved for early fall in cities far away from the one that hasn't fielded a winner since 1992.
Lower-lever tickets were fetching $100 or more hours before the first pitch, and Liriano did not disappoint the largest Monday-night crowd (32,084) since the park opened in 1992.
The left-hander, whose path to stardom veered off track after undergoing Tommy John surgery in 2007, continued to resurrect his career. He retired the first 10 batters he faced and kept the best-hitting team in the National League on its heels while dropping his ERA to 2.16.
The Pirates took some of the pressure off Liriano early by continuing to rough up Westbrook.
As ugly as his record against the Pirates is, it could have been even worse. Westbrook was touched for four runs in the first inning in his last start at PNC Park on April 16 only to have the game washed out by rain.
The weather couldn't save him this time. Neither could Westbrook's usually solid control.
Jose Tabata led off the bottom of the first with a walk and Westbrook drilled Neil Walker moments later. McCutchen followed with an RBI-single up the middle and Alvarez took the very next pitch and sent it into the first row of bleachers.
Westbrook survived a bases-loaded jam in the second to stay close, but by then Liriano had all the support he would need. His only real mistake came in the sixth, when pinch-hitter Tony Cruz led off with a triple and scored on Carpenter's single up the middle. A strikeout and a double play followed, and the Pirates broke it open in the seventh against relievers Marc Rzepczynski and Fernando Salas.
Garrett Jones started it with Pittsburgh's first sacrifice fly to the outfield since May 27 and Barmes clubbed a two-run double as the Pirates batted around.
NOTES: Pirates LF Starling Marte did not start after getting a planned day off in favor of Alex Presley, recalled from Triple-A on Monday after C Mike McKenry went onto the disabled list with a sprained knee. Marte entered in the seventh as a pinch hitter and singled. He is hitting just .131 (5 for 38) since July 20 ... The series continues with a doubleheader Tuesday. A.J. Burnett (4-7, 2.96 ERA) faces Lance Lynn (12-5, 3.98 ERA) in the opener with the Cardinals' Tyler Lyons (2-3, 5.51) starting the second game. The Pirates will not name a starter for the second game until Tuesday morning. ... Lynn was originally supposed to start the second game, but St. Louis manager Mike Matheny moved him into the matchup against Burnett because he wanted a more experienced pitcher to take on Pittsburgh's ace.
Link to box score: Pittsburgh 9, St. Louis 2
Link to game discussion at The Cardinal Nation message board