He was drafted by the Pittsburgh Pirates in the 8th round of the 2001 MLB Draft and accepted a contract with them. He made steady progress through the Pirates' minor league system from 2002 to 2005, spending time with their teams in Williamsport, Lynchburg, Altoona, and Indianapolis. Over 5 minor league seasons and 524 games, he achieved a .299 batting average with 27 home runs and 190 RBIs.
2005 season
In 2005, Duffy received his first call-up to the majors on April 7 but spent only two weeks with the team before returning to Indianapolis on April 21. On July 17, he was again called up and spent the rest of the season on the Pirates' roster. Before an injury in late August ended his season, he hit .341 with 1 home run and 9 RBIs in 39 games with the Pirates.
2006 season
In 2006, Duffy began the season as the Pirates' starting center fielder. After faring poorly at the plate in April and May, however, the Pirates optioned him to the minor leagues on May 14. After an emotional closed-door discussion with the general manager and manager, Duffy unilaterally decided to instead return to his home in Glendale, Arizona, causing the Pirates to suspend his pay. While Duffy had been very critical of manager Jim Tracy for insisting that he change his batting style, he insisted through his agent that he was not protesting the Pirates' decision. Rather, he was on leave for personal reasons that he did not wish to disclose, but that reportedly had to do with a lack of desire to continue a career in professional sports.[1]
Duffy returned to the minor leagues after about a month and—despite earlier reports that the decision to quit had nothing to do with Tracy's change to his batting style—immediately reverted to his 2005 batting style and hit for a .349 average in 26 games. Duffy returned to the majors on August 2 and, apparently with the support of the clubhouse, Tracy installed him directly into the starting center field and leadoff spots.[2]
Duffy failed to earn a spot on the Pirates' active roster, mainly due to injuries. On July 31, Duffy was designated for assignment after the Pirates traded Jason Bay for four players. He cleared waivers and was added to the Triple-A Indianapolis Indians roster. On December 18, he signed a minor league contract with the Milwaukee Brewers with an invitation to spring training.[4] Duffy was assigned to the Brewers' Triple-A Nashville Sounds, but was on the temporary inactive list for a part of the season.
Duffy soon later signed with the Philadelphia Phillies. Duffy was released unexpectedly during the 2010 season, and has not played professional baseball since.