The 31-year-old former England full-back has fallen out of favour with Villa boss Paul Lambert and had been a target of West Ham.
Leeds are the club he has chosen, though, with manager Neil Warnock offering the former Liverpool man a two-and-a-half-year deal.
"He is a former international who, for whatever reason, has been allowed to leave Aston Villa," Neil Warnock said.
"He is a player I have tried to sign a few times before and I'm pleased he turned down West Ham to come here."
The ex-Blackburn and Bolton man is Leeds' second signing of the day following on from the arrival of striker Steve Morison, who headed north as part of the deal that took Luciano Becchio to Norwich.
Stephen Warnock has not played for Villa since Lambert took over last summer and had a loan spell with Bolton last year.