David James has completed his £3.5m move to West Ham.
James will have to compete for a place with Shaka Hislop, who was the Hammers' first-choice keeper last season.
James said: "Aston Villa accepted an offer on Tuesday from West Ham - I didn't want to leave Villa."
He added: "But when the manager said he had accepted a bid he gave me permission to talk I gave them the courtesy of speaking to Glenn (Roeder) and what he had to offer - I couldn't turn it down.
"Obviously I spoke to Glenn and because Aston Villa didn't necessarily want me there didn't mean I had to leave."
Villa have made a respectable profit on the £1.7m that they paid to sign 30-year-old James from Liverpool two years ago.
James, who was an ever present last season and won an England recall, is backing Villa Park deputy, Finnish international Peter Enckelman, to take over from him.
The James deal came on the same day that England team-mate Gareth Southgate wrapped up a £6.5m move to Middlesbrough.