With a solid pitching staff and deep lineup, the St. Louis Cardinals can beat you in a variety of ways. This time, it was a rare triple for their All-Star catcher.

Yadier Molina hit the bases-loaded triple off David Robertson with two out in the eighth inning, sending the Cardinals to a 3-2 victory over the Chicago White Sox on Wednesday night.

Randal Grichuk singled, Matt Holliday was hit by a pitch and Jason Heyward reached on catcher's interference before Molina drove a 2-2 pitch into the corner in right for his third hit of the game.

"Just a great at-bat in a big situation," manager Mike Matheny said. "We talk about that a lot, that big hit, that's kind of the definition of what that looks like."

Molina is batting .429 (9 for 21) in his last four games. It was the first triple for the veteran catcher since May 22, 2011, and No. 4 for his career.

"I think it was a cutter, right on the corner away. I was looking for something middle, middle away," Molina said. "It was a good pitch. I mean, I just got lucky to put the bat on the ball and got lucky to find a hole."

Miguel Socolovich (4-1) pitched a scoreless seventh for the win. Kevin Siegrist struck out Adam LaRoche with runners on the corners for the final out in the eighth, and Trevor Rosenthal finished for his 29th save in 31 chances.

St. Louis (60-34) has won four of five heading into a season-long 11-game homestand beginning on Thursday night against Kansas City.

"We know what to do," said Lance Lynn, who pitched six solid innings. "You just got to keep grinding out at-bats, making pitches, and trying to make sure that they don't have a huge inning. We've got guys who know how to do that, and it makes it fun around here."

It was another heartbreaking loss for the last-place White Sox (42-50), who have dropped four straight and six of seven. Zach Duke (3-4) got two outs in the eighth before he was replaced by Robertson, and Tyler Flowers struck out three times in addition to his costly miscue behind the plate that put Heyward on in the eighth.

"A triple from a catcher is a tough one to take," Robertson said. "He's a good hitter. I don't know what else to say, I threw my best pitch and he got me."