Descalso went 3-for-3 and finished with five RBI and three runs scored for the Cardinals, who have alternated wins and losses in their last seven games.
Edinson Volquez (3-5) lasted six innings but took the loss with a line of five runs, eight hits and five strikeouts. Jedd Gyorko had three of the Padres' seven hits.
San Diego led 1-0 after two innings but the Cardinals tied it with a run in the third. St. Louis then broke it open with four runs in the fifth and Descalso's home run in the eighth.
Celebrity Couples of 2014 [PHOTOS]