The 25-year-old forward, who scored during the Hammers' 2-0 win over Crewe Alexandra on Tuesday night, has put pen to paper on a three-year deal with the South Wales club.
"I moved to West Ham with the hope of playing in the Premier League regularly, but that wasn't to be," Maynard told the Championship club's official website.
"Knowing that my chances would be limited there at Upton Park, it was down to me to find a club where I knew I'd be happy to play.
"It's my aim to play week in week out, which I hope to achieve by playing well for Cardiff City. If I'm scoring goals I'm happy, which I'll enjoy doing in a Cardiff shirt."
Maynard moved to West Ham from Bristol City in January for a fee of £1.65m.