ST. LOUIS -- Michael Wacha was a ball magnet, snaring a line drive instinctively while trying to protect his face and then making an early exit after a foul liner struck him just above the right elbow while he sat in the dugout.
"It hit a nerve, and the whole hand went numb. It was a pretty scary feeling, that's for sure," the rookie right-hander said after the St. Louis Cardinals beat the Arizona Diamondbacks 3-2 in 12 innings. "I'm sure I'll have a little bruise there tomorrow."
Wacha had a bandage wrapped around the elbow but said he felt OK. However, he made no guarantees about his next start.
"I mean, I have no clue," he said. "It feels good right now. I'll see tomorrow when I play some catch."
The Cardinals left the bases loaded in the 10th but kept the pressure on. Arizona shortstop Chris Owings threw wildly to the plate on Allen Craig's bases-loaded grounder with none out, allowing Matt Holliday to score the winning run.
"Holliday was running, and the ball was hit in the hole a little bit," Owings said. "I had to make a play. I had to make a good throw. I didn't."
The Cardinals cut down the go-ahead run at the plate in the 10th on Daniel Descalso's perfect relay throw down the left-field line to nail Ender Inciarte trying to score from first on Paul Goldschmidt's two-out double.
"They had to make two perfect throws to make me out at home plate and they did that," Inciarte said. "It was close, but I was out."
Holliday walked off Trevor Cahill (1-6) to start the 12th. Matt Adams doubled, and Yadier Molina was walked intentionally. Owings had plenty of time for a force play at the plate but his throw eluded catcher Miguel Montero.
Seth Maness (2-2) allowed a hit in the 12th for the Cardinals, who persevered long after Wacha was taken out.
Jason Motte worked 1 2/3 scoreless innings in his first appearance since the 2012 postseason. He got help from Holliday, Descalso and Molina on that nifty relay.
The Cardinals left the bases loaded in the bottom of the 10th against rookie Evan Marshall but couldn't push across the winning run.
Wacha allowed two hits in six scoreless innings and made two outstanding defensive plays before Adams' liner forced an early exit after 88 pitches. The team said Wacha, the National League Championship Series MVP last fall, had a bruise and was removed for precautionary reasons.
"I think he's going to be fine," manager Mike Matheny said. "It was just tightening up a bit. Yeah, we would have liked to have thrown him back out there for the seventh."
Gerardo Parra's two-run homer off Carlos Martinez put the Diamondbacks up 2-1 in the eighth, their first runs in 17 innings in the series after Adam Wainwright's one-hitter Tuesday. Pinch hitter Jon Jay's sacrifice fly off Brad Ziegler tied it in the bottom half.
Wacha snared Martin Prado's liner right back at him on instincts, throwing his glove up on the follow-through. He foiled a squeeze attempt by Arizona starter Brandon McCarthy later in the fifth, gloving the bunt in front of the plate and shoveling the ball to Molina at the plate in time to catch Cody Ross.
The Diamondbacks unsuccessfully challenged, lobbying for an obstruction call at the plate.
Martinez gave up the go-ahead run on a wild pitch in a loss to Atlanta on Sunday and has surrendered seven runs in 7 2/3 innings in his past nine outings. Ziegler was scored upon for just the second time in his past 23 appearances.
The Cardinals won a challenge and perhaps saved a run in the second when Montero was ruled out attempting to steal with one out. The next batter, Prado, singled.
Molina had two hits, giving him 14 the first eight games of a nine-game homestand.
Rock and Roll Hall of Famer Chuck Berry, 87 and a St. Louis resident, threw out the first pitch. ... Lance Lynn (5-2, 3.67 ERA) faces Wade Miley (3-4, 4.94) to end a nine-game homestand. Lynn is 2-0 with a 2.37 ERA against Arizona and 20-8 lifetime at home. Miley is 2-0 with a 3.00 ERA in five road starts this year. ... Opponents are 8-for-19 attempting to steal against Molina. ... In Wacha's 10 starts, he has allowed two or fewer runs six times. ... Cardinals SS Jhonny Peralta, 1-for-21 against McCarthy, did not start. ... Arizona 2B Aaron Hill returned after missing three games with shoulder soreness and was 0-for-5.