Back-to-back singles by Anthony Gose and Jose Reyes and a fielding error by third baseman Matt Carpenter on Melky Cabrera's grounder loaded the bases. Jose Bautista then hit a sharp liner to Daniel Descalso at second that nearly struck umpire Manny Gonzalez.
Descalso flipped to shortstop Jhonny Peralta to double Reyes off second base and Peralta threw to first get Cabrera for the third out.
It's the first triple play for the Cardinals since May 5, 2005, against San Diego. It's the seventh time the Blue Jays have hit into a triple play.