The 32-year-old defender joins Wolves on a two-and-a-half-year deal as the club's fourth signing of the January transfer window, following the arrivals of Mario Lemina, Matheus Cunha and Pablo Sarabia.
Dawson has made 246 appearances in the Premier League, scoring 19 goals and contributing to 53 clean sheets.
As well as West Ham he has played for West Bromwich Albion and Watford.
A statement on West Ham's official website said: "Craig made very clear his wish to be granted the move for personal reasons, and whilst the Club was reluctant to agree to the transfer, he leaves with our thanks and appreciation, and we wish him well in his future career."
Dawson will wear the No 15 shirt.
In order to play in today's match at Manchester City, Wolves would have had to submit the required documents by midday on Friday.