And, for a cherry on top, the Royals escaped last place in the American League Central by passing the Cleveland Indians. The Royals had been in last place or tied for it for a month, since May 24.
"That's a step, no doubt," Royals manager Trey Hillman said. "Sometimes you'd like to take giant steps, but we dug ourselves such a big hole, we just have to get back in it in baby steps."
Helped by two errors, the Royals scored twice in the third inning. They gave Hochevar a 4-1 lead in the sixth inning and knocked out Rockies starter Aaron Cook in the process. Singles by Mark Teahen and John Buck preceded Ross Gload's two-run double into the right-field corner.
Gload had three hits, extending his hitting streak to five games (9-for-19, .474). He's started the last 11 games at first base, with the Royals winning 10.
"I can't say enough about Ross sticking with it," Hillman said. "We all know he had trouble getting it going."
Hochevar had some trouble getting it going against the Rockies. His pitches were staying up but, happily for him, four hits in the second inning produced just one run.
Then he marched on through eight innings, the longest outing of his career, and thereafter gave up only Brad Hawpe's leadoff homer in the seventh.
"If I'm kind of in a skid, it's just: Go out and compete like a madman and keep the ball down," Hochevar said.
He had to rely on a few mental tricks, too, like pretending some of the guys hitting against him weren't the same Rockies that he cheered for as a kid growing up in Denver.
"You have to think of them as just a hitter in there. Like Todd Helton -- he's a future Hall of Famer -- and if that's going through my head, I'm in trouble," Hochevar said.
Helton had a harmless double in four at-bats against him.
In his Hochevar's last inning, he got some help from Buck. Ryan Spilborghs was safe on an error, but Buck, after going 0-for-23 against basestealers this season, nailed him trying to steal second base.
"It was good at the right time. It was a big out and kind of pushed that momentum back on our side," Buck said.
Soria, as is his habit, pitched a 1-2-3 ninth and got two strikeouts. A ground ball slipped past him but second baseman Alberto Callaspo backed him up and got the second out.
"I looked in my glove and it wasn't there," Soria said.
Although there was anticipation of some added drama, a pregame warning by the umpires about throwing at hitters apparently had its effect. Some wildly misdirected flings by Royals pitcher Ramon Ramirez in Tuesday night's game had riled the Rockies.
Cook began the Royals' first inning by drilling David DeJesus in the leg but no action was taken.
"We weren't worried about it at all," DeJesus said.
The Royals don't have many worries these days. Since a 12-game skid ended, they've gone 15-9, closed to within seven games of .500 and skipped out of last place.
"We went through the 12-game losing streak and we're feeling good now," DeJesus said. "We've got to keep an even keel. We can't be, 'Oh, yeah, we're too good.' We've just got to stay humble and keep playing hard."
Veteran Mark Grudzielanek, on the bench because of a sore back, was watching the scoreboard.
"Yeah, I saw Cleveland lost tonight," he said. "It's nice. We're in a very challenging division and it's up in the air right now. If we can get a little more consistent out there, I think we can be within striking distance of the division leaders."
Chicago also lost, so the Royals are just seven games out of first place.