Cashner (2-1) wasn't nearly as sharp as he was in his previous start when he took a no-hitter into the sixth inning against Detroit on Friday before settling for a one-hitter with a career-best 11 strikeouts. But the righty was resourceful as he consistently pitched his way out of trouble. He held the Rockies hitless in eight at-bats with runners in scoring position.
Cashner gave up nine hits overall and allowed two runs - one earned - with five strikeouts in 7 1-3 innings. It was the 10th consecutive start in which Cashner has allowed two runs or less.
Huston Street pitched the ninth for his fifth save.
Justin Morneau went 3 for 3 and drove in both Rockies runs with a solo homer and a sacrifice fly. Jorge De La Rosa (0-3) pitched a season-high six innings, allowing three runs - two earned - and seven hits.
De La Rosa, demoted to the bullpen after his last start, was inserted back into the starting rotation after Brett Anderson suffered a fractured finger Saturday. De La Rosa, a 16-game winner last season, had surrendered 15 runs in his first three starts before Wednesday night.
San Diego reached De La Rosa for a pair of runs in the fifth inning to take the lead.
Alexi Amarista, who replaced the injured Chase Headley at third base, reached on an infield hit with one out. Cashner sacrificed him to second and Amarista went to third on Everth Cabrera's infield single. Amarista then scored on Jordan Pacheco's passed ball and Denorfia hit an RBI double for a 3-1 lead.
Denorfia added a run-scoring single in the seventh.
Cabrera, who sat out Tuesday night with a sore knee, extended his hitting streak to eight games.
Rookie Tommy Medica tied the game at 1 with a solo homer in the second inning after Morneau put the Rockies ahead in the top of inning when he hit a solo shot into the beach beyond the center-field fence.
NOTES: De La Rosa came in with a 3-0 record in his last four starts at Petco Park. He hasn't lost to the Padres in any ballpark in nearly four years. ... Headley sat out with a strained right biceps, suffered in the batting cage before Tuesday night's game. He is listed as day to day. ... Anderson is scheduled to have surgery Thursday to repair his fractured left index finger. ... Rockies LHP Franklin Morales (0-1, 6.39) replaces Anderson in the starting rotation and will face San Diego RHP Ian Kennedy (1-2, 4.24) in the series finale Thursday.