ST. LOUIS — Adam Wainwright lacked ace stuff again, falling behind in the count and battling to get outs. Facing the visitors no one likes to see these days, he again took the St. Louis Cardinals deep into the game but missed a third straight chance to take the National League lead in wins.
"I wouldn't say I'm in a lull by any means," Wainwright said after the Los Angeles Dodgers won 3-2 for their 15th straight road victory Monday night. "I feel great, there's no reason not to be winning games.
"A play here, a play there has not been going my way."
Manager Mike Matheny was unhappy and terse about Carlos Beltran's first sacrifice bunt of the season after the first two runners reached safely in the seventh.
"Sometimes we put them on, sometimes we do it on our own," Matheny said. "A lot of things could have happened differently for us, a lot of little things could have changed the game but didn't, and now we move on."
Zack Greinke pitched into the seventh inning and raised his batting average to .405 with an RBI single for the Dodgers.
Wainwright (13-7) is tied for the league lead with teammate Lance Lynn and is 0-2 in his past three starts, though he's worked at least seven innings in all three.
"It didn't have the zip on it maybe a little bit, but I was still able to make some good pitches," Wainwright said. "I mean, I'm tired of tipping the hat, but you've got to tip your hat."
Wainwright had retired eight in a row before Nick Punto doubled to the opposite-field in left with two outs in the seventh and Greinke lofted a single on a tough curveball that made it 3-1.
"I can't remember the last time a pitcher hit that for a hit, much less an RBI hit," Wainwright said. "That's not the pitch of the inning that really gets me. A double to Punto on a bad pitch, middle of the plate, that cost us."
Punto was productive subbing for injured shortstop Hanley Ramirez and the Dodgers got an RBI apiece from Andre Ethier and A.J. Ellis while matching the Cincinnati Reds' 15-game run in 1957. They're two wins shy of the NL record set by the 1916 New York Giants.
Greinke (9-3) allowed two runs in 6 1/3 innings for his 100th career victory, allowing two hits in the third, fourth and fifth but no runs. Paco Rodriguez earned his second career save with a perfect ninth.
Carlos Beltran and Allen Craig had an RBI apiece for the Cardinals, stifled in the opener of a 10-game homestand after totaling 44 runs the previous four games. They've lost nine of 12 overall.
Punto's relay to the plate preserved a one-run lead in the fifth and denied David Freese of an RBI double, and he made nice defensive plays to end the seventh and eighth.
Matt Carpenter doubled off the right-field wall in the first and took third when Yasiel Puig fumbled the ball, then sprinted home on Beltran's groundout when Punto sailed a throw over catcher A.J. Ellis' head.
Running shoe-top catches by Puig in right field and Ethier in center helped Greinke strand three Cardinals in a scoreless third. St. Louis came up empty again in the fourth after opening with singles by Jon Jay and Tony Cruz, and Punto's relay in the fifth caught Allen Craig at the plate on Freese's double to right.
The first three Dodgers reached in the fourth, with Adrian Gonzalez stopping at third on Puig's double off the right-field wall and then scoring on Ethier's broken-bat single. Puig scored the go-ahead run when Ellis beat the relay on a potential double-play ball.