Cardiff City 0 Norwich City 1. Match Report
He struck in the 16th minute after latching onto a throughball, but refused to do his trademark celebration after smashing the ball high into the roof of the net.
Cardiff were without skipper Darren Purse who failed a late fitness test, but Chris Barker retuned at left-back.
Neil Alexander had to come out of goal to hack clear from Earnshaw, before Jason Koumas went on a run through the middle but his shot flew high over the visitors' crossbar.
A flowing Cardiff move in the 11th minute saw Barker cross into the danger area but Steve Thompson headed well wide.
Two minutes later Cameron Jerome lashed an effort over the bar and Koumas had a shot tipped behind as the Bluebirds racked up the pressure on the Norwich goal.
But a mistake by Glenn Loovens resulted in the Canaries taking the lead in the 16th minute, against the run of play. His headed clearance went to Andy Hughes, who put Earnshaw through on goal and he sent the ball high into the net.
Cardiff continued to impress and Koumas had a snap shot pushed away by Paul Gallagher in the visitors' goal.
Koumas was superb in midfield for the Bluebirds and another shot had the visiting keeper leaping to his right to save.
The Bluebirds remained on top during the second period could not find the right pass to release either Jerome or Thompson.
Koumas and Jerome did work an opening in the 68th minute, but Paul Parry's header flew wide.
It was a disappointing end to the season as Cardiff slipped to their third consecutive home defeat.
Wales on Sunday