"We're pitching pretty well. Obviously, our offense has done some pretty good things, and we're playing good defense," Cubs third baseman Kris Bryant said. "We're having a lot of fun with this and hopefully we'll keep it going."
Lester went seven innings -- ending the seventh by striking out Andrew McCutchen with two men on two pitches after manager Joe Maddon noticed something in his delivery and had trainers check on him. The lefty allowed nine hits, hurt only by Sean Rodriguez's homer in the third, while walking one and fanning seven.
"We've got to do a better job of protecting the ball," Pirates manager Clint Hurdle said. "We're staying in the hunt and we give up three walks, a wild pitch and a balk in that inning. We put a finger in one place, then just have to move it around, stopping the other leaks going on."
Cubs left-hander Travis Wood pitched a perfect ninth inning to earn his first career save in just his fifth career relief appearance. More >
MOMENTS THAT MATTERED Bad read costs Bucs: The Pirates missed out on one of the few scoring opportunities they figured to have against Lester. Starling Marte, on second with an infield single and steal with one out in the fourth, didn't get a good read on a blooper by Jung Ho Kang. Neither second baseman Addison Russell nor right fielder Jorge Soler had a shot at it, but Marte had to stop at third, and the threat ended with consecutive strikeouts of Corey Hart and Rodriguez.
"I think he played it right," Hurdle said in defense of Marte -- perhaps thinking of how Russell made an acrobatic catch of a similar flare the next inning.
Pirates can't answer opportunity's knock: Men on second and third, none out -- Lester out of the game. That's the shot the Bucs had in the eighth, and they came up empty. More >
Moving on up: Lester earned his 1,500th career strikeout when he got Rodriguez looking to end the fourth with runners at second and third. Lester is the 200th pitcher all time, sixth active lefty and 22nd active pitcher to reach the milestone.
Highlight reel: Cubs second baseman Russell backed up Lester with his defense. The 21-year-old rookie, who reached the Majors on April 21, made a leaping grab of a soft liner behind second base with runners on first and second in the fifth.
"Nothing sped up for him. He seemed to be focused on making the next good pitch -- which is what elite pitchers do." -- Hurdle, on Lester
SOUND SMART WITH YOUR FRIENDS
The attendance was 38,883, the largest crowd of the season at Wrigley Field.
"I'm looking forward to some winning baseball, having the fans out there screaming their heads off, just having fun with it," Bryant said. "Today was a good game for us getting that atmosphere going. When they open up the new bleachers out there in right field it will be even better, so we're all real excited for it."
Hart went 0-for-3 -- striking out twice and hitting into a double play -- and is 1-for-20 in his starts, compared to 6-for-14 as a pinch-hitter.
After a 3-minute, 5-second review, the call was upheld that Fowler was caught stealing to lead off the bottom of the third. The Cubs still managed to score a run for a 2-1 lead after a Bryant walk, a Rizzo single and Castro's forceout.
WHAT'S NEXT Pirates: A.J. Burnett will be out to continue his inspiring, and confounding, final season in Sunday's 2:20 p.m. ET wrapup of the series. The 38-year-old, who has never finished a season with an ERA lower than 3.30, currently ranks second in the National League at 1.60.
Cubs: Jake Arrieta looks to go 5-0 all time against the Pirates in the series finale on Sunday afternoon. He allowed one run in seven innings against Pittsburgh on April 20.
Tom Singer is a reporter for MLB.com and writes an MLBlog Change for a Nickel. He can also be found on Twitter @Tom_Singer and on his podcast. Sarah Trotto is a contributor to MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.