In January 2008, Holmes joined League One side Walsall on a season-long loan. He made his debut for Walsall, and his first game in more than 13 months in a 2–2 draw with his former side Swindon Town on 12 January 2008. He scored his first goal in a 2–1 defeat to Carlisle United on 2 February 2008 and followed it up with a goal in his next match in a 2–0 victory against Yeovil Town. Two weeks later he scored in each half to take his run to four goals in four games in a 3–0 victory over Swindon Town. Holmes played a total of 19 games for Walsall during his loan but was unable to add to his four early goals.