The Wales striker - who spent seven years at Ninian Park - latched onto Paul McVeigh's sliderule 16th-minute pass to fire past Neil Alexander.
Cardiff had started brightly, with Steven Thompson, Cameron Jerome and Jason Koumas having early chances.
But with little at stake in the game the Bluebirds faded to the dismay of the fans in their final home game, Norwich comfortably holding their lead.
Norwich manager Nigel Worthington:
"It was a workmanlike performance and we haven't done that enough this season. "This was our first away win this year and our first in the green kit which will thankfully now be confined to the rubbish bin as no-one likes it.
"We had a poor start to the season but if we can finish in seventh or eighth spot that would be acceptable."
Cardiff: Alexander, Darlington, Barker (Jacobson 81), Cox, Loovens, Koumas, Scimeca, Parry, Ledley, Thompson, Jerome (Cooper 72).
Subs Not Used: Ndumbu-Nsungu, Margetson, Blake.
Booked: Koumas.
Norwich: Gallacher, Drury, Shackell, Fleming, Doherty, Huckerby, Hughes, McVeigh (Henderson 90), Etuhu, Robinson, Earnshaw.
Subs Not Used: Johansson, Charlton, Ryan Jarvis, Lewis.
Booked: Shackell.
Goals: Earnshaw 16.
Att: 11,590
Ref: A Marriner (W Midlands).