ST. LOUIS: Los Angeles slugger Adrian Gonzalez hit a 429-foot homer to spark a three-run sixth inning which lifted the Dodgers to a 7-2 win at St. Louis on Saturday in a clash of National League contenders.

The Dodgers remained four games off the NL West lead behind San Francisco, who ended a six-game skid with an extra innings victory at the New York Yankees.

In the NL East, Miami downed the New York Mets to open a 1-1/2 game gap between the division rivals, while the key American League encounter saw Baltimore defeat Cleveland in a meeting of division leaders.

Los Angeles’ Justin Turner hit a two-run double to cap a four-run third inning and increased his tally of runs batted in since the All-Star break to an impressive 14.

Dodgers’ starter Kenta Maeda rebounded from a poor outing in his previous staff, and prevented all but one of the Cardinals’ first 15 batters hitting the ball out of the infield.

San Francisco’s Mac Williamson homered in the fifth inning and hit a tiebreaking single in the 12th to give the Giants a 2-1 win against the Yankees, and a belated first win since the All-Star break.

Williamson, whose fourth-inning error allowed the Yankees’ only run, began the comeback when he connected leading off the fifth.

Trevor Brown hit a double leading off the 12th, and Williamson singled up the middle with one out, just past the glove of the diving shortstop, to bring in the winning run. San Francisco had been 0 for 10 with runners in scoring position since the All-Star break, before Williamson’s single.

Miami’s Giancarlo Stanton homered and had his first four-hit game since 2012, driving in three runs as the Marlins beat the Mets 7-2.