Arrieta allowed consecutive hits to lead off the seventh and loaded the bases with his first two walks, but held the Rockies to one run by forcing a bases-loaded groundout on his 96th pitch.
He posted his 10th straight quality start and trimmed his ERA to 2.11 -- second best in the National League since his debut on May 3 -- on a day when he admitted to not having his best stuff.
"Going in, I felt a little off. In the pen I kind of realized it," Arrieta said. "Just didn't feel like I had a lot of life on my fastball today, but I was able to come out with a good mix of offspeed pitches for strikes below the zone for swings. ... Just changing your looks, not being in patterns of predictability really is what makes things easy for me out there."
Arrieta struck out seven Rockies using four pitches.
"There's times where [pitchers] won't recognize that and continue to try and find their fastball and give up hits, maybe scatter a few hits and give up some runs that maybe shouldn't have been given up," Arrieta said. "That's something I realized early on and was able to mix three other pitches in there."
Arrieta's 10 straight quality starts are a high mark for the Cubs since Steve Trachsel logged 11 in a row in 1994. Arrieta became the first pitcher since 1988 to take a no-hitter into the seventh in consecutive starts when he did so against the Reds and Red Sox in late June.
Arrieta also gave the bullpen a much-needed breather after 20 2/3 innings the last four games, including 12 in Tuesday's marathon win.
"The mindset doesn't change for me much as far as what happened in the past, as far as extra-inning games, relievers being out there," Arrieta said. "But it is a goal of mine to keep those guys out of the game as long as possible."
Chicago scored its three runs in the sixth after loading the bases with no outs. Arismendy Alcantara and Chris Coghlan led off with singles, then Anthony Rizzo and Starlin Castro drew consecutive walks for the game's first run. Justin Ruggiano followed with a sacrifice fly to center, and Luis Valbuena scored Rizzo on a groundout.
Rockies pitcher Pedro Hernandez allowed six hits and two walks while holding the Cubs scoreless until the sixth, then didn't make it out of that inning. Thursday marked his first start since Sept. 27 of last year with the Twins.
"[Hernandez] kept the ball down those first five innings, then after that he threw a lot of balls," Castro said. "That's when we made an adjustment and got three runs."
The Rockies scored their lone run in the seventh when Nolan Arenado lined a double to left on a full count, bringing home Corey Dickerson from first. Arrieta walked two batters, then got out of a bases-loaded jam on a groundout from DJ LeMahieu. Arrieta's 96 pitches were a low since throwing 90 against Washington on July 6.
"We had a really good idea about what we were going to do and that's what we did today," Cubs catcher Welington Castillo said. "[Arrieta] threw really well."
Hector Rondon came on for the ninth and earned his 14th save. After giving up a pair of leadoff singles, he struck out Rosario and Charlie Culberson looking to seal the win and the four-game series for the Cubs.
"It's not an easy assignment," Rockies manager Walt Weiss said of hitting against Rondon. "Rondon is throwing the ball well and he threw some tough pitches to Culberson. He looks like he's going to be pretty good."