Liverpool dominated throughout, had close on 70% possession, but just could not find a way past goalkeeper Thomas Sorensen and his outstanding defenders.
Stoke play to their strengths - being direct and physical - but they deserved their day in the sun.
They halted a Liverpool side who had beaten Manchester United and Marseille in the previous week.
Manager Rafael Benitez rested Ryan Babel, Javier Mascherano and Lucas to the bench with Robbie Keane, Albert Riera and Xabi Alonso returning.
Stoke had former Liverpool midfielder Salif Diao in their side, his first start of the season while Amdy Faye was suspended.
Leon Cort and Ricardo Fuller were also on the bench after playing against Everton last weekend, Mamady Sidibe and Abdoulaye Faye returned.
Gerrard thought he had scored his 100th club goal after just two minutes when referee Andre Marriner gave a free-kick for a push in the back on Fernando Torres.
The captain's curling free-kick from the left looked to have been missed by everyone-- including Sorensen - as the ball sailed on into the far corner, with Dirk Kuyt throwing himself at it on the far post, without making contact.
All Gerrard's colleagues rushed to congratulate their captain but a linesman's flag surprisingly cut short the celebrations.
Stoke responded with a 20-yard shot from Dave Kitson just over, while at the other end Sorensen needed to save smartly from a Robbie Keane first-time effort.
Gerrard kept trying and his next effort, a 20-yard free-kick, that Sorensen held comfortably.
Stoke were continually forced back with Liverpool keeping possession and passing well.
Such was Liverpool's territorial advantage that centre-back Martin Skrtel was spending considerable time linking in midfield.
Stoke lost Ibrahima Sonko with a leg injury after 21 minutes, to be replaced by Cort, while Sidibe needed to change his shirt after a gashed eye left him blood-stained.
But despite the constantly flowing attacks Stoke did not panic despite keeping two men up front whenever they could manage.
The tactic gave Liverpool plenty of space and possession, with Andrea Dossena joining Riera down the left almost at will.
Sorensen punched away another Alonso long-range strike and Torres had a drive charged down.
But there was great resilience and organisation about Stoke, with Diao screening the defence where Faye, Danny Higginbotham and Cort were standing firm against the barrage.
Kuyt fired wide and Gerrard saw another right-footer sail wide, while Alonso clattered another 20-yard shot over the top as the Potters reached the break unscathed.
Six minutes into the second period Keane almost ended his goal famine. Alvaro Arbeloa and Kuyt combined down the right and when the cross arrived on the six-yard line Kuyt's stabbed effort was well saved by Sorensen.
Liverpool continued to pour forward but frustration was creeping in with too many players trying increasingly erratic long-range efforts.
Stoke grew in confidence and they started to win set-pieces inside Liverpool's half, while the hosts were becoming wasteful.
Kuyt's lay-off saw Torres side-foot over from 10 yards before Babel replaced Riera after 65 minutes.
Sorensen had to save well from Kuyt, while another curler from the Dutchman just cleared the far post.
Yossi Benayoun then replaced Keane, with Jamie Carragher and Gerrard seeing efforts go close from outside the box.
Gerrard had another effort deflected wide by Cresswell with Stoke now camped in their own final third. Ricardo Fuller came on for Kitson after 77 minutes.
Liverpool's nerves were jangling every time Stoke won a throw or set-piece and for one Delap effort all 11 players were called back into defence.
A Gerrard run and Benayoun pass ended with Torres spinning to lash yet another effort into the Kop.
Skrtel was booked for a foul on Fuller, but Stoke hung on, throwing bodies in the way of numerous crosses and shots.