The 30-year-old Norway striker replaced James Milner at the break with Villa trailing to Diniyar Bilyaletdinov's second goal in three games in first-half stoppage time.
And with his first touch Carew slotted the ball home after Tim Howard spilled Gabriel Agbonlahor's shot.
Bilyaletdinov and Carlos Cuellar both saw red in the final five minutes to leave Martin O'Neill's side unbeaten in five games, while Everton haven't tasted victory in six outings.
Villa boss O'Neill had never lost at Goodison and Steve Sidwell, on his 250th career appearance, had the first chance of the game when he headed wide in the sixth minute.
Sidwell struck after 34 seconds the last time the two sides met in the league at Everton, but after failing to build on their early advantage it was the Toffees who should have gone ahead just before the half-hour.
Summer signing John Heitinga swung the ball in from the flank and Yakubu rose highest but could only direct his header wide of Brad Friedel's post.
Villa responded with Emile Heskey and full-back Stephen Warnock firing wide of the Everton goal within five minutes of each other.
But it was the hosts who finally took the lead in first-half stoppage time when Yakubu miscontrolled Tim Cahill's cross and Bilyaletdinov swept the ball home.
Carew had scored three goals in his last three games against Everton and with his side trailing at the break, O'Neill threw on the big Norwegian with immediate effect.
Agbonlahor cut in from the wing and unleashed a stinging shot that Tim Howard could only palm into the path of Carew who netted 43 seconds after replacing Milner.
Substitute Louis Saha fired wide for Everton in the 85th minute, but their challenge ended moments later when Bilyaletdinov saw red for a professional foul.
And referee Lee Probert evened up the teams in the 89th minute when Cuellar collected his second yellow.