Carlos Asuaje singled in the go-ahead run in a two-run ninth inning and the Padres held on to beat the Cardinals 4-3 at Busch Stadium. Jose Pirela added a sac-fly for insurance, which proved necessary when Randal Grichuk hit a solo homer in the bottom half to get St. Louis close.
Kirby Yates picked up the win and Brad Hand recovered from the home run to earn his 12th save.
Sam Tuivailala was charged with both runs in the ninth without recording an out to take the loss.
The Cardinals have dropped four of their last five games. The Cardinals begin a three-game Interleague series with the Rays tonight at Busch Stadium. Michael Wacha will start for St. Louis and Jake Odorizzi for Tampa Bay. The Cardinals are 64-and-63 overall, four-and-a-half games behind the Cubs in the NL Central and five games out of the second NL wild card spot.