Bartlett made his MLB debut on August 3, 2004. He recorded his first five-hit game in the Twins' 11-5 victory over the Kansas City Royals on August 6, 2006.[6] When on the Twins, Bartlett was one of four players known for speed and small ball, nicknamed "the Piranhas" by Chicago White Sox manager Ozzie Guillén. The Twins embraced the term during the 2006 season. The other Piranhas were Jason Tyner, Luis Castillo, and Nick Punto.
On October 22, 2008, Bartlett stole a base in the fifth inning of Game 1 of the World Series, earning America a free taco from Taco Bell.[7] Bartlett finished the season batting .286 with one home run, and was voted by local Tampa sportswriters as the Rays' MVP for the year.[8]
On July 5, 2009, Bartlett was selected to represent Tampa Bay in the 2009 All Star Game. He finished the year batting .320, which was, at the time, the highest batting average in Rays history.[5] On July 23 of the same year, against the Chicago White Sox, he grounded out to Alexei Ramírez for the final out of Mark Buehrle's perfect game.[9] Bartlett had a 19-game hitting streak during the season, which would stay the longest hitting streak in Rays history until it was broken by Yandy Díaz in 2024.
Bartlett was the Padres regular shortstop in 2011 and finished the season batting .245 with 2 home runs and 23 stolen bases. He had the lowest slugging percentage of all major league ballplayers with 512 or more plate appearances, at .307.[10]
The Padres opened 2012 with Bartlett again as their everyday shortstop but he played his last game for the team on May 14, batting .133 with 4 RBI over 29 games. Three days later he was moved to the disabled list with a right knee strain. On the same day, his fellow middle infielder Orlando Hudson was released and the Padres brought up Everth Cabrera and Alexi Amarista in corresponding moves.[11] On August 20, 2012, the Padres requested unconditional release waivers on Bartlett.
After sitting out the 2013 season, he signed a non roster contract with the Minnesota Twins on November 11, 2013.[12] After playing in three games for the Twins, Bartlett retired on April 19, 2014.[13]