Nola (8-2) allowed one run and four hits in 6 2/3 innings, lowering his ERA to 2.27. He has given up three runs or less in 13 of 14 starts.
"He's a special kind of competitor," manager Gabe Kapler said. "He's fun to watch."
Nola left after striking out Ian Desmond with runners on first and third. Edubray Ramos entered and gave up a bloop RBI single to Tom Murphy before recording the third out. Tommy Hunter tossed a scoreless eighth. But Luis Garcia allowed four consecutive singles to start the ninth. He departed after Murphy's RBI single cut it to 5-2.
"I was thankful to get the job done," Dominguez said.
Kapler called Altherr's running catch a "game-saver."
"That play was sensational," he said.
Kingery drove a 1-2 pitch from Jon Gray (6-7) out to left-center to give the Phillies a 3-0 lead in the first. He added a sacrifice fly in the third.
Gray surrendered four runs on only three hits in six innings. He also fanned 10.
"I had no rhythm early and it cost me," Gray said.
Jesmuel Valentin's pinch-hit RBI single in the eighth extended Philadelphia's lead to 5-1.
The Phillies have won two in a row for the first time since a three-game winning streak May 13-17.
The Rockies have lost five straight and nine of 11.
After starting at five positions, Kingery has taken over as Philadelphia's regular shortstop despite batting only .215. J.P. Crawford has moved to third base since returning from the disabled list and has started five straight games instead of Maikel Franco.
"It's been a process," Kingery said. "Just trying to go step by step to where I feel better in the box."
This was the first time a Phillies starter and opposing starter each struck out 10 or more in the same game since April 25, 2011, at Arizona when Cliff Lee had 12 and Ian Kennedy had 10.
Rockies: OF Carlos Gonzalez was back in the lineup after missing two games with a rib issue. ... RHP Adam Ottavino threw a live batting practice session. He has been sidelined by a left oblique strain.