The Toffees went close in the first half of the Barclays Premier League contest, with Kevin Mirallas twice shooting against the woodwork.
But 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.
The Potters looked set to make a winning start to 2014, but substitute Jermaine Pennant fouled another player who had come off the bench, Leon Osman, in the box in stoppage time and Baines swept in the resulting penalty.
Everton slip from fourth to fifth in the table, while Stoke stay 12th.
The first real attempt on goal of the match 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 the edge of the area.
The Toffees looked to respond and after Steven Pienaar had skewed off-target, Jack 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 on the line, Pennant upended Osman, allowing Baines to seal a point for the Toffees by converting from the spot.