Swisher, a right-fielder, received 9.8 million votes to beat out Kevin Youkilis of the Boston Red Sox for the 34th spot on the American League team. It was the closest race in the nine years the final voting has been conducted, MLB.com said.
Swisher is hitting .298 this season with 14 home runs and 48 runs batted in.
Votto, a first baseman, got 13.7 million votes and beat out Ryan Zimmerman of the Washington Nationals for the last spot on the National League team. Votto is batting .313 with an NL- leading 21 homers and 59 RBI.
The 81st All-Star Game will be held July 13 at Angel Stadium in Anaheim, California.