Coats made his Major League debut for the Cubs on August 22, 2006, against the Philadelphia Phillies.[2] After the 2006 season, he finished batting .167 with one home run and one RBI.[3]
Coats was then traded to the Reds for a player to be named later. Buck finished hitting .206 and two RBIs, a personal best.[3] The Reds then dealt him to the Toronto Blue Jays for right-handed pitcher Justin James.[4]
Coats only played eight games for the Toronto Blue Jays before being sent back down to the minors. He finished the season batting .200, with one hit, and a single stolen base.[3]
Coats signed a minor league contract with the Kansas City Royals on November 25, 2009.[5] Coats was traded to the Chicago White Sox organization and assigned to the AA Birmingham Barons on May 4, 2010.[6] Coats hit .338 with two home runs and 8 RBI in 68 at-bats with the Barons before being promoted to the Triple-A Charlotte Knights.[7]
On December 15, 2010, Coats signed a minor league contract with the Washington Nationals.[8] Due to injury, he was limited to only nine games with the Double-A Harrisburg Senators, batting .261 with 3 RBI.[7]