McDonald began his career playing for the New England Junior Coyotes of the Eastern Junior Hockey League (EJHL) during the 2002–03 season, where he led the league in scoring with 58 points (28 goals, 30 assists) and was named "Junior Coyote of the Year", and received the "EJHL Offensive Player of the Year Award" and League MVP. He was selected MVP of the Top Prospects Tournament in 2002, as well as "Hockey Night In Boston Junior Player of the Year". He was also chosen to the U.S. National Junior Team Evaluation Camp in August 2003.
After being selected 51st overall in the National Hockey League's (NHL) 2003 draft by the Edmonton Oilers, McDonald spent four seasons with Providence College. During his freshman year (2003–04), McDonald led Providence Friar freshmen with 10 goals. His performance earned him Providence's "Most Valuable Freshman" Award as well as a selection to the Hockey East All-Rookie Team. As a sophomore, McDonald missed time due to injury but still managed to match his point total from freshman year as he tallied up 11 goals and added 5 assists. As a junior, he served as an alternate captain and reached career highs in points (28) and assists (19), finishing fourth on his team in scoring. He was then named co-captain for the 2006-07 season at the end of the year. In his senior year he had a career high of 13 goals, along with 4 assists, totaling 17 points.
McDonald joined the Edmonton Oilers organization in 2007 and was assigned to their minor league affiliate, the American Hockey League's (AHL) Springfield Falcons. He played 73 games in his first season, scoring 12 goals and 11 assists for 23 points. The following season, McDonald played 77 games, scoring 10 goals and 12 assists for 22 points and also played 3 games in the ECHL for the Stockton Thunder. He was first called up to the Oilers on November 26, 2009. He played in his first career NHL game the next night against the San Jose Sharks. His first NHL goal came in his second game on November 28, 2009 against Roberto Luongo of the Vancouver Canucks.
On July 1, 2011, McDonald was signed by the Pittsburgh Penguins to a one-year, $525,000 contract. In the 2011–12 season, he was primarily assigned to the Penguins' AHL affiliate, the Wilkes-Barre/Scranton Penguins, but was recalled to play in five games with the Penguins.
On July 2, 2012, McDonald signed as a free agent to a one-year, two-way contract with the New York Islanders. During the season, on March 15, 2013, he agreed to a two-year, one-way contract extension. He played most of the season on a line with Matt Martin and Casey Cizikas. In the 2013 playoffs against his former Penguins team, he played on a line with Michael Grabner and Keith Aucoin, scoring two goals and one assist as the Islanders were defeated in six games.
Early on in the 2014–15 season, on October 22, 2014, McDonald was placed on waivers; upon clearing he was assigned to the Islanders' AHL affiliate, the Bridgeport Sound Tigers, where he was named captain.
On July 3, 2015, having left the Islanders as a free agent, McDonald signed a one-year, two-way contract with the Philadelphia Flyers.