DENVER -- Colorado reliever Matt Belisle was pitching well enough. His defense cost him, though.
Belisle's bases-loaded throwing error led to two unearned runs in the eighth inning for the Padres, Everth Cabrera hit his first homer of the season in the ninth and San Diego beat the Colorado Rockies 9-7 Sunday to avert a series sweep.
"I take full responsibility for this loss," Belisle said. "I 'zoomed' it, there's just no other way to say it. I felt calm and collected and made the pitches and executed them, but I failed at the defensive play. But that seventh game of the World Series, I want to be there doing it again and I'm confident I'll make that play."
Scott Hairston matched a career high with four hits in helping the NL West-leading Padres gain a two-game cushion over second-place Colorado heading into the All-Star break. The Rockies had their season-high six-game winning streak snapped.
Heath Bell, coming on in the eighth after reliever Mike Adams left with an oblique strain, got the five outs for his 24th save in 27 chances, giving up an RBI single to Carlos Gonzalez.
"This was big, to end the half with a win," said Hairston. "We battled every game and every night and even those we lost the previous two nights, we put ourselves in position to win. They are an extremely hot team and have been swinging the bats well. But we never get down and we didn't get down today."
Trailing 6-3 in the seventh, the Padres pulled to within a run on Chase Headley's two-run double off Randy Flores and moved back in front in the eighth when reliever Belisle's throwing error opened the door to the go-ahead runs.
Jerry Hairston Jr., who had three hits, and Aaron Cunningham each singled off Belisle (4-4) and Adrian Gonzalez was walked intentionally, bringing Nick Hundley to the plate.
Belisle induced a comebacker, fielded it cleanly but spun around and sidearmed the throw wildly past catcher Miguel Olivo. Two runners scored to put San Diego on top by a run.
"I knew I was going to throw home the whole time, but the way I spun around -- Olivo was a blur -- and I just rushed it," said Belisle, who conceded he had replayed the episode so much in his head that he had been left with a pounding headache.
Bell said it was important to put a dent in Colorado's recent run of success.
"The Rockies are all about momentum," Bell said. "When they have momentum, it's really hard to stop them. So any chance we can push them back a game or two, it is huge for us."
Despite the loss, the Rockies, who were six games behind the Padres a week ago, closed the first half strongly, going 8-2 on their just concluded homestand and winning 16 of the past 23 games.
"It was tough to lose but you try to look at the positives," said Colorado third baseman Ian Stewart. "We had a great homestand and we ended the first half in good position. Hopefully, we continue to play well in the second half."
Colorado broke a 3-all deadlock with a three-run sixth inning off Clayton Richard, who went 5 2/3 innings and gave up a season-high six runs. Richard walked Carlos Gonzalez, who advanced to second on a fly ball before Olivo singled to put the Rockies in front.
With two outs, Richard hit Stewart with a pitch and Clint Barmes blooped a run-scoring single to right, chasing Richard and bringing on reliever Luke Gregerson (3-5). Jhoulys Chacin greeted Gregerson with an RBI single to center. It was the first career RBI and just the second hit in 23 at-bats for Chacin, who pitched 1 1/3 innings in relief of starter Jeff Francis.
Down 3-0, the Rockies pulled to within a run in the fourth inning. Dexter Fowler became the Rockies' first baserunner of the game when he drew a leadoff walk and Jonathan Hererra followed with a run-scoring double. Carlos Gonzalez then singled to score Herrera.
They evened the score an inning later when Barmes drew a one-out walk and Brad Hawpe, who was hitting for Francis, doubled to the center field wall.
San Diego took advantage of a shaky first inning by Francis to score its first run. Francis hit Cunningham with a pitch and issued two walks around Scott Hairston's RBI single. Cunningham's RBI double in the second and Jerry Hairston Jr.'s run-scoring single in the fourth put San Diego up 3-0.
Cunningham's second-inning double also extended his career-high hitting streak to 10 games. ... Herrera's triple in the fourth gave him an 11-game hitting streak. ... The only other time Scott Hairston had four hits was July 26, 2004 against Houston