Adam Wainwright pitched seven strong innings and the St. Louis Cardinals bounced back from a blowout, beating the San Francisco Giants 3-1 Thursday.