Paul Goldschmidt homered and drove in three runs, Zack Greinke pitched seven strong innings and the Arizona Diamondbacks beat the St. Louis Cardinals 7-1 on Saturday night.

Greinke (13-4) limited the Cardinals to one run and four hits to improve to 5-0 in his last six starts. He struck out nine and walked one.

Goldschmidt hit a two-run homer, his 22nd, and J.D. Martinez followed with a solo shot, his 21st, to give the Diamondbacks a 3-1 lead in the fourth. It was the eighth time this season Arizona hit back-to-back homers.

Martinez has five home runs and 12 RBIs in eight games since being acquired from Detroit on July 18.

Cardinals starter Mike Leake (7-9) allowed three runs and four hits over five innings.

Ketel Marte had a two-run homer, A.J. Pollock an RBI double and Goldschmidt a sacrifice fly in the Diamondbacks' four-run eighth against reliever Kevin Siegrist.

More From KHMO-AM 1070, News-Talk-Sports