Quiroz lined a two-out hit against Yohan Ramirez (1-1) to left in the eighth, driving in Jared Young. Two innings earlier, he chopped an infield single to cap a three-run sixth for the Cubs, who have won eight of 11.
“I feel like his energy, the way he's played defense, the nice base hit down the line right there, was a big one for us,” Chicago manager David Ross said.
The Pirates (55-96) have lost eight straight, and must win at least eight of their final 11 to avoid reaching 100 losses for the 10th time.
Manuel Rodríguez (2-0) allowed one run, coming on a tying home run from Bryan Reynolds in the seventh, in two innings for Chicago. Erich Uelmen struck out Cal Mitchell with the bases loaded in the ninth for his first save in the majors.
Chicago trailed 4-2 before four walks keyed the three-run sixth. Patrick Wisdom and P.J. Higgins each got a free pass before Jared Young singled off Wil Crowe to load the bases with one out. Crowe walked in a run and was relieved by Manny Bañuelos, who walked in another and allowed Quiroz’s first RBI single, giving the Cubs a 5-4 lead.
“Really good at bats,” Ross said. “Guys continued to fight. It wasn't pretty, but we pulled it out.”
Reynolds tied it on a solo shot to center, his major league career-high 25th of the season. He put the Pirates ahead in the first with an RBI single up the middle.
Wisdom hit a two-run home run, his 24th, off Bryse Wilson for a 2-1 Chicago lead in the second. He has two homers in three games since hitting two in his previous 22.
“Swinging at good pitches, controlling my swing,” Wisdom said. “I take a lot of swings that are probably max effort up there sometimes. I was able to tell myself to tailor it back a little bit and not swing so hard. Those are the good ones. The bad ones are (when) I'm swinging too hard.”
Wisdom was ejected arguing a strike call with plate umpire Ryan Wills in the seventh inning.
“I heard, as I was on the grass, ‘All right, get out of here,’" Wisdom said. "That's when I looked back and I said, ‘Did you toss me?’ And he said, ‘Yes.’ ... Because of what I told him. I told him that he made a bad call on the first pitch. But I didn't look at him.
“I think, given the circumstances, I feel like I'm allowed to voice my opinion on a call. He obviously didn't like it.”
Wilson lasted five innings, allowing two runs and five hits with five strikeouts.
Jack Suwinski tied it 2-all in the bottom half of the second with the 17th homer run of his rookie season before Mitchell gave Pittsburgh a 3-2 in the third, slipping a double off Javier Assad just inside the right-field line. Newman immediately followed with another double to right, extending the lead to two.
Assad didn't get through an inning without allowing a run until ending his outing with a perfect fourth.
“I had a couple of mechanical things I was working through,” Assad said. “I tried to work through them throughout the time between the (past) two starts. Some things with my leg, when I was trying to push to land, working on it, felt it went a little bit better than the last outing.”
Cubs: C Willson Contreras (left ankle) had full baseball activities Friday, but there is still no timeline for his return. ... LHP Justin Steele (back) is expected to throw a bullpen at some point in the next few days.
Pirates: C Tyler Heineman was placed on the seven-day concussion injured list. ... INF Ji-Hwan Bae was selected from Triple-A Indianapolis. He was 1 for 3 with a single in the ninth, a walk and a stolen base in his major league debut.