Houston closer Brett Myers was blunt after blowing his second save of the season Thursday night.
"I gave up runs," he said. "That's not my job."
Alexi Amarista launched a grand slam for his first major league homer, capping a six-run rally in the ninth inning off Myers to lift the San Diego Padres over the Astros 7-3.
Five of the runs allowed by Myers (0-3) were unearned as the Astros wasted a solid start by rookie Dallas Keuchel.
"I'm supposed to shut down the inning and I didn't do it," Myers said.
Padres starter Andrew Cashner took a no-hitter into the seventh inning before Carlos Lee's one-out single to center, setting the stage for Brian Bogusevic.
The Padres are the only team in the majors without a no-hitter after Johan Santana recorded one for the New York Mets last month.
Bogusevic's sixth home run of the season, a two-run blast gave the Astros a 2-1 lead, and J.D. Martinez added a run on a wild pitch in the eighth inning.
Myers allowed a leadoff double by pinch hitter John Baker and a one-out single by pinch-hitter Mark Kotsay.
Third baseman Chris Johnson's second error of the game gave San Diego a run, and Carlos Quentin was hit by a pitch with the bases loaded, tying it at 3.
The Astros had little time to dwell on the loss, as they were set to open a three-game series at Chicago on Friday afternoon, something not lost on Johnson.
"If you want to put this one on me, you can do that," Johnson said. "But the reality is that we have to go at it again in less than 24 hours."
Myers wasn't blaming anyone but himself for the ninth-inning collapse.
"It's my job to shut the inning down and pitch around mistakes," Myers said. "If I can't do that, that's my fault."
Myers struck out Jesus Guzman before Amarista's homer to right. It was wild ending to what for the most part had been a duel of starting pitchers.
Making only his third career major league start, Keuchel held the Padres to just one run — a home run by Chase Headley in the third inning — on four hits over six innings to lower his ERA to 1.35.
Until the seventh, Cashner, a fast-throwing 25-year-old who grew up in Conroe, Texas, just outside of Houston, had dominated the Astros, more than validating the Padres' decision to move him from the bullpen to the rotation.
"He throws hard," Bogusevic said of Cashner. "He throws 100 mph and he locates it. And then he throws the changeup and he throws for strikes. That's what makes him tough."
Cashner (3-3) was making just his second start of the season and first since rejoining the team from a three-start stint in the minors as San Diego sought to stretch him out.
For his part, Keuchel followed Sunday's complete-game performance with another gritty outing, and the way he went about it had to please the Astros.
"He's showing experience beyond his time in the major leagues," Astros manager Brad Mills said.
On a night when the offense could get nothing going early against Cashner, Keuchel the small crowd of just over 19,000 reason to cheer in the top of the sixth, when he dug himself out of a bases-loaded jam.
After allowing a one-out single to Quentin, Keuchel allowed back-to-back walks to load the bases. Then came the nail-biting stuff.
Twice — against Everth Cabrera and Nick Hundley — he went ahead on the count 0-2, only to allow them back in for full counts.
He struck out Cabrera with an 87-mph fastball for out No. 2. And, after keeping the fans on their feet three pitches too many, he got Hundley to pop out to center to end the inning and come away unscathed.
"Terrible off-speed command, but I was lucky enough to make the pitch when I absolutely had to," Keuchel said. "I battled through six, and I'm just thankful I kept them in the game."
NOTES: Houston 2B Jose Altuve was out of the lineup for the fourth straight game with a strained right hamstring. Manager Brad Mills doesn't expect him to play until at least Sunday. ... San Diego optioned RHP Brad Brach to Triple-A Tucson before the game to make room on the roster for Cashner. ... San Diego's Ross Ohlendorf will move from the rotation into the bullpen as a long reliever, making Kip Wells the starter on Sunday against the Rockies. ... Houston optioned LHP Xavier Cedeno to Triple-A Oklahoma City after the game to make room for Bud Norris, who will be activated from the DL to start Friday's game at Chicago. ... Houston OF Travis Buck accepted his minor league assignment and was outrighted to Triple-A Oklahoma City.