The Nigeria international, linked with West Ham in the summer and criticised for lacking match fitness early in the campaign, hit the only goal of a cagey Goodison Park encounter after 67 minutes.
Matthew Etherington had a late chance to equalise for Stoke but shot wide when well placed.
The game only came to life in the second half but Everton deserved their victory having dominated possession and created the better of the chances.
Yakubu showed a brilliant striker's instinct to snatch his chance after Tim Cahill had hit the post.
His goal was the first from an Everton striker this season and finally justified manager David Moyes' faith in him after featuring in the eight previous games.
Victory extended Everton's unbeaten run to five games and continued their march up the table after sitting bottom with six games gone.
Stoke's promising start is now beginning to fade after three consecutive defeats.
It took Everton some time to get into their stride despite the return of fit-again Mikel Arteta, who passed a fitness test on a hamstring injury.
Stoke were without goalkeeper Thomas Sorensen due to an elbow injury but replacement Asmir Begovic was not seriously tested in the first half.
Everton did have an early opportunity when Yakubu was tripped after turning Ryan Shawcross on the corner of the area but Arteta blasted the free-kick well over.
Kenwyne Jones, who overcame flu to play, got an unexpected shooting chance for Stoke after Sylvain Distin smashed a clearance straight at Arteta but sliced wide.
Begovic required treatment after coming out of goal to prevent Seamus Coleman reaching the ball and getting an accidental kick in the face for his trouble.
Everton attacked again after the resumption with Steven Pienaar setting Yakubu away but the Nigerian lacked pace and was unable to test Begovic with a firm shot.
Pienaar also had a shot from distance after collecting a neat flick from Yakubu but Begovic comfortably gathered.
Arteta created another good opening by finding Phil Neville in space in the box but Faye got back to deflect the Everton captain's shot into Begovic's arms.
Tim Cahill also tried his luck from long range but his effort flew into the stand.
Stoke had a rare chance five minutes before the break after winning a corner but an unmarked Abdoulaye Faye shot well wide after receiving the ball at the back post.
Arteta lined up another free-kick early in the second half after being tripped by Marc Wilson but Jonathan Walters blocked his powerful shot.
Everton then pieced together a good move which appeared to break down on the edge of the box as Coleman lost control.
But the Irishman showed tenacity to win it back and burst into the area after playing a one-two with Neville, only to shoot tamely at Begovic.
Nevertheless, the game had finally started to warm up and Leighton Baines picked out Cahill with a good cross which the Australian headed over.
With 50 minutes on the clock, Stoke finally enjoyed a good spell with first Wilson cutting in from the right to shoot over.
Shawcross then spurned a glorious chance from 12 yards, slicing wide after team-mate Robert Huth had a shot blocked.
Tuncay claimed a goal at the far post after bundling the ball over the line but referee Lee Probert correctly penalised the Turk for barging into the back of Baines.
Everton replied with a quick counter-attack but John Heitinga blazed over.
Tuncay won a free-kick after being felled by Baines but Etherington could not take advantage.
Everton finally grabbed the lead after Pienaar broke clear of Collins on the right.
Faye chose to let the ball hit his shins instead of clearing and Yakubu nipped in to set up Cahill.
The midfielder drove a powerful shot at the base of the post and Yakubu again quickly picked up the loose ball.
This time the former Middlesbrough striker cut inside and fired an unstoppable left-foot shot into the roof of the net.
Stoke responded by throwing on former Liverpool winger Jermaine Pennant.
The visitors should have equalised 10 minutes from time after Etherington broke down the left but the midfielder dragged his shot across goal.
Yakubu, satisfied with his contribution, was withdrawn five minutes from time and replaced by Diniyar Bilyaletdinov.
The Russian could have added a second in injury time but fired narrowly wide from close range.