Holmes agreed to a 3 1/2-year contract with Huddersfield, the second-tier League Championship team said Monday. The deal includes a one-year option for an extension, the club said.
Holmes, 26, played for Huddersfield from 2013-16, then was with Scunthorpe (2016-18) and Derby.
Holmes was born in Columbus, Georgia, moved to England with his mother when he was four and played for Huddersfield's academy.
He made his U.S. national team debut in 2019 and has two international appearances.