Gaines, a 6'6", 205 lb (1.98 m, 93 kg) point guard played high school basketball at Madison West in his hometown. He then played four years at University of Louisville, earning AP All-America 3rd team honors his senior season while leading the Cardinals to a 25-7 win-loss record.
Gaines was drafted by the Orlando Magic in the first round (15th overall) of the 2003 NBA Draft and signed with the club on July 18 2003. He spent one season on the bench in Orlando (1.8 points, 1.0 rebounds, 1.1 assists in 38 games) before being traded to the Houston Rockets (along with Tracy McGrady, Juwan Howard and Tyronn Lue) in exchange for Steve Francis, Cuttino Mobley and Kelvin Cato.
Gaines played ten games with the Rockets (2.6 points, 1.1 rebounds, 0.3 assists per game), spending the majority of his time on the injured list. He was traded again on February 24 2005 (with two future second-round picks) to the Milwaukee Bucks for Mike James and Zendon Hamilton.
Gaines saw even less playing time with the Bucks during the second half of the 2004-05 season, playing a total of 79 minutes (1.4 points, 0.3 rebounds, 0.4 assists) in 11 games.
Gaines playing time decreased even more with the Bucks in the 2005-2006 season, appearing in 12 games, and playing 52 minutes (1.1 points, 0.0 rebounds, 0.3 assists).