In a goalless first period, Kevin Mirallas hit a screamer against the bar and then saw a free-kick in stoppage time strike the post.
It was Stoke who went ahead in the 49th minute when on-loan Liverpool winger Oussama Assaidi collected the ball from John Stones’ failed attempted clearance and smashed it past Tim Howard.
But Everton forced the draw when Jermaine Pennant fouled fellow substitute Leon Osman in the box and Baines sent Jack Butland the wrong way from the spot.
Everton slip from fourth to fifth in the table with the point, while Stoke stay 12th.
The first real attempt on goal came in the 11th minute from Charlie Adam, whose shot appeared to take a deflection on its way to Howard, and a minute later Gareth Barry was penalised for climbing over his marker as he headed a corner over the bar.
Assaidi then brought a parry out of Howard, but the whistle had gone again, with Adam having been judged to have pushed Stones as he headed on Jon Walters’ cross to the Morocco international.
Peter Crouch looped a header wide from another Walters delivery, before James McCarthy’s low shot called Thomas Sorensen into action at the other end.
Mirallas’ first effort against the goalframe came in the 30th minute when he cut inside and let fly with a strike that came back off the crossbar.
Assaidi threatened again, chesting down a Geoff Cameron cross and seeing his shot deflect behind off an Everton man.
Ross Barkley then put a first-time effort over from a cut-back by the lively Mirallas, who went within inches once more to breaking the deadlock in first-half stoppage time as his free-kick connected with the post.
Certainly Stoke had survived some scares before the break, but shortly after the restart, they snatched the lead as Assaidi notched his fourth goal since joining the Potters on loan from Liverpool earlier in the season.
Stones – on his first Premier League start – tried to head clear a Glenn Whelan cross, but the ball only went as far as Assaidi, who rifled it in from just outside the box.
The Toffees looked to respond and after Steven Pienaar had skewed off-target, Butland – who had come on for Sorensen at the interval to make his Stoke debut – got down to save a Romelu Lukaku shot.
Adam turned and sent an effort at Howard and Erik Pieters then made a last-ditch tackle to deny Mirallas, before a Barkley strike deflected into the stand.
Everton continued to pressurise towards the end of the game and after Steven Naismith and Mirallas had seen efforts blocked in the box by Pieters, Pennant upended Osman, allowing Baines to seal a point for the Toffees by converting from the spot.