Updated

St. Louis, MO (SportsNetwork.com) - Matt Adams' two-run homer powered a four- run first inning and Joe Kelly tossed seven strong frames as the St. Louis Cardinals defeated the Los Angeles Dodgers, 4-2, in the middle test of a three-game set.

Matt Holliday hit a two-run single and Kolten Wong finished 2-for-4 with a double and a run scored for the Cardinals, who have won two straight and four of their last five.

Kelly (2-1) surrendered just one run on four hits with four strikeouts to earn his first win since April 5 after spending nearly three months on the disabled list with a left hamstring strain.

"I thought it was one of his better pitching performances," said Cardinals manager Mike Matheny about Kelly. "His secondary pitches were on today."

Hanley Ramirez and Carl Crawford each drove in a run for the Dodgers. Dee Gordon finished with three hits and a run scored.

Zack Greinke (11-6) gave up all four St. Louis runs on six hits and five walks across 5 2/3 frames.

Kelly got all of the run support he needed in the first. Matt Carpenter took a leadoff walk and Wong singled and moved to second after Gordon's diving throw was off target. Holliday laced a single to left-center field and took second on Crawford's fielding error. With Adams batting, Holliday collided with Ramirez at second on a pickoff attempt and appeared injured. He was taken out of the game in the fifth for precautionary reasons.

Adams followed him up with a blast to right, giving St. Louis a 4-0 lead.

"That first inning is always the dangerous inning. They got him early," said Dodgers manager Don Mattingly on Greinke.

Gordon got aboard with a one-out single in the third, stole second and moved to third on a wild pitch. Two batters later, Yasiel Puig was hit by a pitch to put runners at the corners. Hanley Ramirez laced a grounder to third that was fielded cleanly by Carpenter, but the throw to first was off the mark, allowing Gordon to score.

Puig eventually exited the game in the eighth with a sore left hand.

Kelly stymied the Dodgers by retiring the final 13 batters he faced before being replaced by Sam Freeman in the eighth. Justin Turner took a leadoff walk and Gordon doubled to right before Crawford's sac fly to center made it a 4-2 game.

Trevor Rosenthal tossed a scoreless ninth for his 30th save of the season.

Game Notes

Holliday is listed as day-to-day ... Wong extended his hitting streak to eight games ... Greinke entered the game with four straight wins against the Dodgers and lost for the first time since Sept. 7, 2011 as a member of the Milwaukee Brewers ... St. Louis reliever Pat Neshek has allowed just one run since April 9, a span of 40 games.