Chelsea, who have won the FA Cup four times in the last seven seasons, were made to fight for their place in the last 16, and should have won by a bigger margin after spurning a host of chances. Oscar and Andre Schurrle both hit the post.
The winner came after 28 minutes when Oscar whipped in a brilliant free kick from 30 metres out which flew over the wall and high and wide of diving Stoke keeper Asmir Begovic.
In the day's early match, Sheffield United put their League One relegation worries aside and gave a battling performance to draw 1-1 with Premier League strugglers Fulham at Bramall Lane.
United, who played most of the second half with 10 men after skipper Michael Doyle was sent off, went ahead after 31 minutes when Chris Porter scored. Fulham equalised through Colombian Hugo Rodallega 15 minutes from the end.
Porter reacted quicker to a cross from Harry Maguire, getting to the ball ahead of Fulham defender Philippe Senderos to touch home past goalkeeper David Stockdale.
The balance of the match tipped Fulham's way when Doyle was sent off for an off-the-ball kick at Fulham's Muamer Tankovic after 53 minutes and after both teams had strong penalty appeals turned down, Fulham equalised.
Rodallega made room for himself on the edge of the penalty area and fired wide of goalkeeper George Long. It was his fourth goial of the season with all four coming in cup competitions.
Image: Oscar celebrates after scoring
Photograph: Ian Walton/Getty Images
FA Cup: Fulham find form to knock out Norwich
EPL: Giroud fit for Arsenal tie at Aston Villa
FA Cup: Classy Arsenal beat Spurs, Villa crash out
Most top-tier clubs could do without FA Cup, says Villa's Lambert