McGahee was drafted by the Buffalo Bills with the 23rd pick in the 2003 NFL Draft. McGahee did not play at all in his first season. This was because McGahee was only a rookie, was dealing with injuries, and Travis Henry was already a starter. However, McGahee passed 1,000 yards the next two seasons and scored 13 total times in 2004. In 2006, McGahee's rushing total dropped to 990 yards on 259 carries, plus six touchdowns. He wore #21.