As a 16-year-old in, López was signed as an undrafted free agent by the Chicago White Sox. In, López was sent to the Arizona White Sox in the Arizona League, a rookie-level professional baseball league. López batted.312, going 62 for 199 in 50 games. He also stole 12 bases and scored 26 runs. López was sent to the Appalachian League, another rookie-level professional baseball league, in, where he played for the Bristol White Sox. He upped his batting average to.319, playing in 63 games, knocking in 83 hits, and stealing 22 bases while scoring 42 runs. In, López was sent to the South Atlantic League, a Single-A league, where he played for the Kannapolis Intimidators. He hit.264 in 109 games with 40 runs scored and 24 stolen bases. At that point, López was promoted to high-A ball with the Winston-Salem Warthogs in the Carolina League. He played only 4 games with the team, and batted 3 for 13. López stayed with the Warthogs in and showed vast improvement in his hitting. He played in 111 games, racking up 124 hits, scoring 62 runs, and stealing 12 bases. Towards the end of the season, López was promoted to Double-A with the Birmingham Barons in the Southern League. He played the remaining 7 games of the season there and went 5–23 in his first taste of Double-A ball. For the season, López started again with the Barons and struggled a bit with his hitting, only batting a.238. Regardless of his performance, scouts saw his potential as he was only 21 years of age and playing in Double-A ball. He was promoted to the Charlotte Knights in the International League. He batted.202, getting 38 hits in 188 at bats. Soon after, López was promoted to the big leagues. López made his major league debut on May 1, 2005, and played in two games for the Chicago White Sox. He went 2–7 in with a run scored and 2 RBI. López began the season with the Charlotte Knights, the White Sox Triple-A affiliate, but was later released by the team.
On May 21, 2007, he was picked up off waivers by the Cincinnati Reds. He was sent to the Red's Triple-A affiliate, the Louisville Bats. On July 8, 2007, he was called up to the Reds and made his Reds debut on July 14, going 0–3 against the New York Mets.