Houston second baseman Jose Altuve passed Kansas City's Omar Infante in the final days of voting, leaving four Royals as starters for the All-Star Game.
Todd Frazier of the host Cincinnati Reds leapfrogged St. Louis' Matt Carpenter and will be in the NL starting lineup for the July 14 game at Great American Ball Park.
Most popular baseball stories
The voting results were announced Sunday.
AL champion Kansas City will be represented in the starting lineup by outfielders Lorenzo Cain and Alex Gordon, catcher Salvador Perez and shortstop Alcides Escobar. Four players ties the AL record for fan-elected starters, achieved nine times previously.
Eight Royals were on track to start in vote totals announced June 15, but first baseman Eric Hosmer, third baseman Mike Moustakas and designated hitter Kendrys Morales also were overtaken.
Seattle's Nelson Cruz, suspended for the final 50 games of the 2013 season for violating baseball's drug agreement, was elected to start for the second straight year. In the closest vote at any position, Cruz's 10.6 million votes edged Morales' 10.32 million.
Toronto's Josh Donaldson will start at third for the second straight year after receiving a record vote total of 14.09 million, topping Josh Hamilton's 11.07 million in 2012.
Washington outfielder Bryce Harper set a mark for NL players at 13.86 million, topping the previous record of 7.62 million set three years ago by San Francisco catcher Buster Posey, who was elected to start again this year.
MLB said 620 million votes were cast, breaking the old mark of 391 million in 2012.
At least two elected starters will miss the game because of injuries: Miami outfielder Giancarlo Stanton broke a hand on June 26 and Detroit first baseman Miguel Cabrera hurt his left calf Friday. In addition, the Cardinals' Matt Holliday, who finished third among NL outfielders behind Harper and Stanton, has been sidelined since straining a quadriceps on June 8 and is uncertain when he will return.
Each fan could cast up to 35 ballots in online voting. Pitchers and reserves will be announced Monday.
Altuve overtuned a 232,000-vote deficit in totals announced Monday and finished with 9.63 million to top Inante, who was just shy of 9 million. Frazier trailed Carpenter by 63,000 at the start of the week but finished ahead by 2.1 million.
Los Angeles Angels outfielder Mike Trout will make his fourth straight All-Star appearance after earning 14 million votes, the second-highest total.
NL starters include Arizona first baseman Paul Goldschmidt, Miami second baseman Dee Gordon and St. Louis shortstop Jhonny Peralta, who also was suspended 50 games following MLB's investigation of the Biogenesis of America clinic.