In 1997, McDonald was drafted by the Baltimore Orioles 26th overall in the first round in the amateur entry draft. He began his professional career with Single-A Frederick, but after four games and two stolen bases there, he moved to Single-A Delmarva. In 134 games with Delmarva, he stole 35 bases and hit .261. His 35 stolen bases were a professional career high for him. He stayed with Single-A Frederick for the entire 1999 season, and in 130 games, he stole 26 bases and hit .266. He earned a promotion to Double-A Bowie in 2000, with whom he hit .242 in 116 games, and stealing 11 bases.
In 2001, McDonald played in Double-A Bowie and Triple-A Rochester, where he hit .238 and stole 13 bases in 104 games. He began the 2002 season with Bowie again and hit .292 and stole 9 bases in 37 games. He was again promoted to AAA Rochester, where he hit .289. In 2007, he was traded to the Minnesota Twins and re-united with the Red Wings.
He spent his entire 2003 season with the Ottawa Lynx, who were the Orioles Triple-A team. He played 40 games that year, and hit .296. McDonald's 2004 season was subpar, he hit only .234 with Ottawa. It led to a promotion to the Baltimore Orioles, and while with them, McDonald hit .156 in 32 at bats (17 games).
On January 26, 2005, McDonald was signed by the Cleveland Indians to a minor league contract. He played 26 games with the Triple-A Buffalo Bisons, and then went over to the Devil Rays Triple-A team, the Durham Bulls.
On May 6, 2005, McDonald was suspended for violating the Minor League Drug Prevention and Treatment Program.
On June 24, 2007, McDonald was sent to the Minnesota Twins by the Washington Nationals in order for the Nationals to keep Rule 5 draft pick Levale Speigner. Speigner was then outrighted to Triple A Columbus by the Nationals.
On July 20, 2007, McDonald was called up to the Twins when Michael Cuddyer was placed on the disabled list. He became a free agent at the end of the 2008 season and signed with the Cincinnati Reds in December.
On April 6, 2009, he made the opening day roster for the Cincinnati Reds. On August 30, 2009, he hit his first Major League home run against the Dodgers pitcher Clayton Kershaw.
In 2010, he joined the Boston Red Sox organization. In April, McDonald's contract was purchased by the major-league club from Triple-A Pawtucket after Jacoby Ellsbury went on the disabled list. On April 20, 2010, McDonald pinch hit in the bottom of the 8th inning with the Red Sox against the Texas Rangers, and hit a game tying home run. He became the 9th player to hit a home run for the Red Sox in his first Red Sox at bat. He was only the third person ever to pinch hit for the Red Sox and have his first hit be a home run. His home run over the Green Monster tied the game at 6-6 in the eighth, and in the bottom of the ninth, he added a game-winning hit off the Green Monster to lead the Red Sox to a walk-off win against the Rangers, 7–6. He also became the first ever member of the Red Sox to collect a game-ending RBI in his debut with the club, according to the Elias Sports Bureau. He also threw out a runner and hit his second home run as a Red Sox in only his second game.
Prior to joining Boston, McDonald had two home runs in 147 Major League at-bats. He hit 9 homers in his first season with the Red Sox. McDonald made the opening day roster for the Red Sox in 2011, and served as utility outfielder.
On May 6, 2012, McDonald came in to pitch the top of the 17th inning against the Baltimore Orioles. He walked two, gave up a double and allowed a three-run home run by Adam Jones before retiring Chris Davis, an Orioles outfielder who was the winning pitcher of record that evening. McDonald committed a double play before becoming the losing pitcher when Boston lost 6-9 in 17 innings. McDonald had made only one previous relief appearance in his career, during the 2011 season, in which he posted a no decision.
On June 30, 2012, McDonald was designated for assignment to make room for the returning Josh Beckett.
On July 4, 2012, McDonald was claimed off waivers by the New York Yankees. McDonald made his Yankee debut on July 7, 2012 against his former club, the Boston Red Sox.
In accordance with the Yankees' appearance policies, he cut off his trademark dreadlocks and offered to donate them to charity. He was demoted to the Scranton Wilkes-Barre Yankees on July 17, and elected free agency on October 6, 2012.
On January 10, 2013, McDonald signed a minor league contract with the Chicago Cubs. He was promoted from the Iowa Cubs minor league club to Chicago on August 11, 2013. He announced his retirement on his Instagram page on April 6, 2014, a few days later it was announced that he was hired by the Cubs as a baseball operations assistant.In 1996, he was a First Team High School All-American.
In 1997, he was a First Team High School All-American and the Baseball America High School Player of the Year.
In 2008, McDonald was selected to represent the International League in the Triple-A All-Star Game.
His brother, Donzell McDonald, is a former outfielder, and his cousin, James McDonald was a pitcher in the major leagues. Darnell attended Cherry Creek High School, in Greenwood Village, CO .