After attending Thousand Oaks High School in Thousand Oaks, CA he played two seasons at Oxnard Junior College. In 1998 the St. Louis Cardinals selected Wilson in the 9th round of the amateur draft. Wilson never played for the Cardinals, as he was traded to the Pirates in 2000 for pitcher Jason Christiansen. Wilson made his major league debut with the Pirates on April 3, 2001, 2004 was a break through year for Wilson, he hit .308 batting average, with 11 HR and 59 RBIs, on his way to a Silver Slugger Award and his first All-Star team.