The 27-year-old central defender has penned a five-year contract with the Eagles.
Tomkins appeared in 32 matches for the Hammers last season but was not a guaranteed starter, and Palace’s bid was deemed too good to turn down.
He is the third signing made by Alan Pardew in the close season after Andros Townsend and Steve Mandanda joined the south London club last week.
Tomkins made more than 200 appearances for West Ham having come through their youth academy and was at the club when Pardew was manager between 2003 and 2006.
“I am really excited to be joining Crystal Palace, a massive club and a manager in Alan Pardew that I know well and will always be thankful for how he helped me develop in my younger days at Upton Park,” he said.
Palace chairman Steve Parish added: “I’m really pleased James has agreed to join us, He’s someone Alan has always wanted to sign from his own days at West Ham.
“I’m sure he is destined to become a huge part of our team as we look to build on the progress the club has made over the last six years.
“It’s been a really positive transfer window so far, everyone”