Although Uribe did not have a starting role at the beginning of his tenure with the White Sox, he wound up appearing in 134 games for them in 2004, playing second base, shortstop, and third base. On June 19, he had seven RBIs (one short of the White Sox single-game record) in a 17–14 loss to the Montreal Expos. He set many career highs in batting categories, including batting average with the bases loaded (.556), RISP (.340), batting average (.283), home runs (23), RBIs (74), hits (142), and runs (82). He played much better at home, batting .315 with six home runs compared to .248 with seven home runs on the road. On December 16, he agreed to a contract extension through 2008 with the White Sox.