NEW YORK -- Miami's Dee Gordon had three hits on the final day of the season to edge Washington's Bryce Harper for the NL batting title Sunday, and Detroit's Miguel Cabrera won his fourth AL championship in five years.
Harper entered with a tiny edge, .330754 to .330606, but Gordon doubled on David Buchanan's first pitch of the game at Philadelphia, then homered and singled in his next two at-bats. Gordon's 3-for-4 day lifted his average to .333, while Harper's fell to .330 when he went 1-for-4 at the New York Mets.
"It feels kind of surreal," Gordon said with a smile. "I don't think it hit me yet. It was an amazing feeling when I walked up the stairs and my teammates were ready and congratulating me. That felt really good."
Gordon became the first NL player to lead the league in batting average (.333) and stolen bases (58) in the same season since Jackie Robinson did so in 1949, according to the Marlins citing the Elias Sports Bureau.
"To be put in the same category as Jackie Robinson is pretty humbling," Gordon said. "I'm just thankful for the opportunity."
Cabrera, who did not play Sunday, finished at .338 to win by a huge margin in the AL over Boston's Xander Bogaerts, who was second at .320.
Baltimore's Chris Davis homered twice Sunday to finish with 47 and lead the major leagues for the second time in three years.
Toronto's Josh Donaldson topped the AL in RBIs (123) and runs (122).
Colorado's Nolan Arenado and Washington's Harper shared the NL home run title at 42.
Twenty players hit 30 or more homers, up from 11 last year. Harper also led the NL in runs (118), and Gordon topped the league in hits (205).
Houston's Jose Altuve led the AL in steals for the second straight year; his total of 38 was the lowest for a league leader since Luis Aparacio of the White Sox had 31 in 1961.
Cleveland's Michael Brantley had 45 doubles, the fewest for an AL leader since Shawn Green's 45 in 1999.
Arizona's David Peralta had 10 triples, the fewest for the NL leader since Steve Finley and Rafael Furcal had 10 each in 2003.
Among pitchers, Zack Greinke of the Los Angeles Dodgers won his first NL ERA title to go along with the AL one he earned with Kansas City in 2009. Greinke's 1.66 ERA was the lowest by a qualifying pitcher since Greg Maddux's 1.63 for Atlanta in 1995 and the lowest for the Dodgers since Rube Marquard's 1.58 in 1916. Greinke ended teammate Clayton Kershaw's record streak of four straight big league ERA titles. Jake Arrieta was second at 1.77, and his 0.75 ERA after the All-Star break was the lowest in big league history. Kershaw was third at 2.13.
David Price, traded from Detroit to Toronto in July, won his second AL ERA title at 2.45, just ahead of Houston's Dallas Keuchel (2.48). Price, who like Greinke and Davis can become a free agent, also led in ERA with Tampa Bay in 2012.
Kershaw struck out seven Sunday to finish with 301 strikeouts and become the first pitcher to reach 300 since Arizona's Randy Johnson in 2002.
Chris Sale led the AL with 274, breaking the previous Chicago White Sox record set by Ed Walsh in 1908.
Arrieta led the major leagues in wins with a 22-6 record, and Keuchel topped the AL at 20-9. Keuchel went 15-0 in 18 starts at Minute Maid Park, the first pitcher in big league history to go undefeated at home with at least 14 wins.
Pittsburgh's Mark Melancon led the NL with 51 saves, and Tampa Bay's Brad Boxberger topped the AL with 41, the lowest total for an AL leader since 2000.
Information from The Associated Press was used in this report.