"We've tried to do it with pitching and defense and score one more run than the other team," said Hurdle, whose club is now 10 games above .500. "They always remind me when we win 1-0, 'That's all you've ever asked us to do is score one more run than the other team.'"
Liriano threw seven innings, allowing just two hits and one walk while striking out nine. He improved to 3-0 on the season after just three starts, and he has now struck out 25 batters in 18 innings of work.
Liriano, however, almost let the Cubs grab a lead in the third. He loaded the bases before getting a groundout, then a strikeout. Right fielder Travis Snider tracked down a tailing Anthony Rizzo flyball after that to keep the Cubs off the board and preserve the Pirates' one-run lead.
"I've been in the situation a lot before," Liriano said. "So I just tell myself to not try to do too much and make some good pitches. Pitching is all about location."
Outside of that close call, Liriano allowed just two baserunners -- one on an error by shortstop Jordy Mercer and the other on a Welington Castillo single in the seventh.
Andrew McCutchen, who entered Wednesday's game as a lifetime .324 hitter against the Cubs, provided all the offense Liriano needed. McCutchen doubled to lead off the first inning, and he was driven in by a Garrett Jones RBI single. McCutchen went 2-for-4 with two doubles.
He is now 9-for-22 with six runs and six extra-base hits in his last five games.
"I feel good," McCutchen said. "I wouldn't say I'm locked in. The past few weeks, I've been putting together some pretty good at-bats, putting the barrel on it. I can't worry about the results. As long as I feel good, that's all I can do, and I've been doing it lately."
The Pirates did have a chance to add to their lead in the sixth but came up empty. McCutchen struck out but reached first on the strike three wild pitch, then Jones walked. Neil Walker then grounded into a 6-4-3 double play to end the inning. The game's total hits and runs from both teams added up to just one more than the seven goals scored by the Penguins on the Senators in Wednesday's NHL playoff game.
After the seventh, Liriano had thrown just 91 pitches, but he told Hurdle he did not feel comfortable going back out in the eighth inning -- a decision he may not have made a few years ago.
"My first couple years in the big leagues, no matter how tired I was, I would try to go out there and compete," Liriano said. "But now I know the game a little better ... I'll do my job and let the bullpen do the rest."
Tony Watson took the ball from Liriano in the eighth and gave up an infield hit, but he struck out Rizzo with Starlin Castro on second to hold the lead. Mark Melancon allowed a hit and a runner to reach on a strike three wild pitch in the ninth, but he forced Ryan Sweeney and Darwin Barney to softly line out to second to pick up his first save of the year, with closer Jason Grilli unavailable.
Cubs righty Jeff Samardzija coughed up the lone run in the game. He took the loss and fell to 2-6. He went seven innings and gave up three hits and a walk while striking out eight.
Samardzija won on Opening Day against the Pirates but did not grab another victory until May 15, when he needed a two-run home run of his own to do it.
But Wednesday, Samardzija could not outduel Liriano, despite tossing a nearly flawless game.
"He wasn't going to give in," Barney, the Cubs second baseman, said of Liriano. "I don't think he had his best slider today, but his changeup was really good. We kind of relied on that a little bit, and he just kept us off balance, and we couldn't get anything going. He looked really good today. He definitely had his stuff."
Steven Petrella is an associate reporter for MLB.com.