If Chris Carpenter wasn’t in the lead for the National League Cy Young Award before last night, he certainly is now. The Cardinals’ starting pitcher battled fellow Cy Young candidate, Dontrelle Willies, and finished with a three-hit, complete game, 3-1 win over the Marlins.

The only run Carpenter (16-4) allowed came in the first inning, when Jeff Conine drove in Juan Pierre—who led off the game with a double—with a sacrifice fly. After allowing the first inning run, Carpenter proceeded to retire 19 of the next 20 batters he faced.

Meanwhile, the Cardinals were able to chase Willis (14-7) after just five innings. John Gall drove in the first two runs of his career, with a double which scored Albert Pujols and Mark Grudzielanek in the third inning. In the fifth, Jim Edmonds singled to right to score Pujols to make it 3-1.

But the Cardinals could have given Carpenter a little more breathing room. They loaded the bases with Ron Villone on the mound in the eighth inning. Carpenter was called for interference, when he missed a squeeze play attempts and Florida catcher Paul Lo Duca had the ball glance off his mit. Carpenter was in the way while Lo Duca went looking for the ball and was called out. David Eckstein grounded out at second to end the threat.

Jeff Conine singled with one out in the ninth, but was stranded by Miguel Cabrera, who flied out to right and Lo Duca, who grounded out to second to end the game.

In his last nine starts, Carpenter has gone 8-0 with a 0.71 ERA—he’s allowed just six earned runs over the last 75 2/3 innings. Carpenter hasn’t lost since June 8.