The Atlanta Braves selected Gosselin in the fifth round of the 2010 Major League Baseball draft. Gosselin was called up to the majors for the first time on August 16, 2013. He debuted the same day, in the tenth inning of a game against the Washington Nationals. He was outrighted off the Braves roster on November 5, 2013. Gosselin was called back up by the Braves on July 13, 2014, when Dan Uggla was suspended by the team for one day. Gosselin was again recalled by the Braves on July 26 after Uggla was released. On August 15, Gosselin hit his first MLB home run, against the Oakland Athletics. He batted.266/.304/.320 in 378 at bats for the Atlanta Braves in 128 at bats. In the minors, as he batted.344 /.379/.487 with 5 triples for the Gwinnett Braves, he was named a 2014 International League mid-season and post-season All Star, and Player of the Week on July 14. Gosselin made the Braves' Opening Day roster in 2015, and batted.325/.357/.425 in 40 at bats over 20 games before fracturing his left thumb against the Miami Marlins on May 17 while diving for a ground ball. The injury required surgery, and Gosselin missed eight weeks of the season.
Arizona Diamondbacks
On June 20, 2015, Gosselin was traded to the Arizona Diamondbacks for Bronson Arroyo and Touki Toussaint. On September 29, Gosselin recorded his first career walk-off hit with a bases-loaded RBI single against the Colorado Rockies. This gave the Diamondbacks a 4-3 win in 11 innings. In 2015 with Arizona he batted.303/.382/.545, with 3 home runs, and 13 RBIs, in 66 at bats. In 2016 Gosselin batted.277/.324/.368 with Arizona, with two home runs, and 13 RBIs, in 220 at bats. He led all big league pinch hitters in hits, with 20. Gosselin was designated for assignment by the Diamondbacks on February 7, 2017.
Pittsburgh Pirates
On February 10, 2017, Gosselin was traded to the Pittsburgh Pirates for minor league pitcher Frank Duncan, but only had 40 at bats for the team. With the AAA Indianapolis Indians, he batted.266/.304/.336 in 241 at bats.
Texas Rangers
Gosselin was claimed off waivers by the Texas Rangers on August 12, 2017, but only had eight at bats for the team.
Cincinnati Reds
On January 2, 2018, Gosselin signed a minor league deal with the Cincinnati Reds. He earned a spot on the Reds' Opening Day roster, but only had 24 at bats for the team.
Return to Atlanta
The Atlanta Braves claimed Gosselin off waivers on May 3, 2018. The Braves designated him for assignment on June 25, subsequently outrighting him to the Triple-AGwinnett Stripers, with whom he batted.251/.319/.384 in 279 at bats. Gosselin declared free agency on October 9. In the major leagues, through 2018 Gosselin had played 97 games at second base, 37 games at third base, 11 games at shortstop, eight games at first base, and eight games in the outfield.
Philadelphia Phillies
On December 18, 2018, Gosselin signed a minor league deal as a free agent with the Philadelphia Phillies. While with the 2019 Phillies’ minor league AAA Lehigh Valley IronPigs, he batted.314/.405 /.497, with five triples, eight home runs, and 47 RBIs, in 296 at bats, playing primarily second base. Gosselin’s 2019 MLB Phillies stat line included batting.262/.294/.308, with three doubles, no home runs, and seven RBIs, in 55 at bats; he pinch hit 35 times and played six games in left field, five games at shortstop, and one game at third base. In December 12, 2019, Gosselin was re-signed to a minor league contract by the Phillies, with an invitation to 2020 spring training. On July 24, 2020, Gosselin had his contract selected to the 40-man roster, and the 30-man active roster. He made his debut 2020 for the Phillies starting against the Miami Marlins on July 25, going 3-3 with 2 home runs.