Barney graduated from Southridge High School in Beaverton, Oregon, where he helped lead the Skyhawks baseball team to its first baseball state championship in 2002.
Barney attended Oregon State University and played for the Beavers for its back-to-back NCAA Division I Baseball Championships in 2006 and 2007, and was named to the all-tournament team in 2007.
He was the Pac-10 Freshman of the Year in 2005, and earned Freshman All-American honors. In 2006, Barney was selected to Team USA by USA Baseball, where his team won the gold medal at the World University Baseball Championship.
Barney was drafted by the Chicago Cubs with the 127th overall pick in the 2007 Major League Baseball Draft.
Barney spent 2007 to part of 2010 in the Cubs minor-league system. In 2009, he split time with the Double-A Tennessee Smokies and the Triple-A Iowa Cubs, posting a .293 batting average in 137 games. In January 2010, Barney was invited to the Cubs' training camp, opening the season with the Triple-A Iowa Cubs.
On August 11, 2010, Barney was called up to play with the Cubs after they traded Mike Fontenot to the San Francisco Giants. Barney split time at second base and played alongside fellow rookie Starlin Castro who was the team's starting shortstop. He went on to hit .241 in 30 games.
After a strong spring training, Barney earned a spot on the Cubs Opening Day roster as the starting second baseman in 2011, beating out Jeff Baker and Blake DeWitt for the job. After hitting .326 with 14 RBI in his first month, he was named the National League Rookie of the Month for April. In his first full big league season, Barney batted .276/.313/.353 and placed seventh in National League Rookie Of The Year voting.
In 2012, Barney won a Fielding Bible Award as the best fielding second baseman in MLB. Barney was also awarded the 2012 Gold Glove award for his play at second base, the first by a Cub second baseman since Ryne Sandberg's nine-year run from 1983-1991. During the season, he recorded only 2 errors at second base, and tied the MLB record for consecutive errorless games at second base with 141 games. For the year, he finished with a career best 4.6 WAR, including a 3.6 dWAR (defensive wins above replacement) while registering career highs in doubles (26), home runs (7) and RBI (44)
Barney started 2013 on the disabled list, bouncing back from the brief set back to play 141 games in 2013, batting .208 with 7 home runs, 41 RBI, 49 runs scored and a .993 fielding percentage (4 errors). He was beaten out for the Gold Glove by Brandon Phillips.
Barney was designated for assignment on July 22, 2014 after he hit .230 in 72 games for the Cubs.
On July 28, 2014, he was traded to the Los Angeles Dodgers for a player to be named later, minor league pitcher Jonathan Martinez. He made his first appearance as a pinch hitter on August 11 and started his first game at second base the following day. In 22 games with the Dodgers, he hit .303. He began 2015 with the Dodgers and appeared in two games, with four at-bats and no hits, before being optioned to the Dodgers new Triple-A affiliate, the Oklahoma City Dodgers. On June 12, 2015, he was designated for assignment and removed from the 40-man roster.
On September 13, 2015, Barney was acquired by the Toronto Blue Jays in exchange for Jack Murphy. The Blue Jays put him on the active roster after designating Scott Copeland for assignment. Barney appeared in 15 games for the Blue Jays in 2015, and batted .304 with two home runs and four RBI. As he was acquired after September 1, he was ineligible to go into the postseason with Toronto. He was designated for assignment on October 19, and elected free agency on October 22.
On December 11, 2015, Barney signed a one-year, $1.05 million contract with the Blue Jays. He recorded his 500th career hit on May 31, 2016, driving in 2 runs with a single to right field in a 4–1 win for the Blue Jays over the New York Yankees. On July 1, 2016, Barney made his professional pitching debut, being pressed into service in the 19th inning of a marathon game against the Cleveland Indians, and gave up the winning run, earning him a loss. On July 20, he played his first professional game as an outfielder, starting in left field against the Arizona Diamondbacks. He had previously played there as a member of the 2006 under-21 United States baseball team. Barney appeared in 104 games for the Blue Jays in 2016, hitting .269 with four home runs and 19 RBI.
Barney avoided salary arbitration with the Blue Jays on January 12, 2017, by agreeing to a one-year, $2.8875 million contract.
Barney grew up speaking English with his Japanese grandfather and Korean grandmother. He is of one-quarter Korean, one-quarter Japanese, and half American-Hawaiian descent. Barney and his wife Lindsay have three daughters.