Central defender Stones, closing in on 100 Premier League appearances for City, headed his first league goal for the club after a sublime cross by Kevin de Bruyne in the 26th minute.
Ilkay Gundogan curled in a delightful second 11 minutes after the interval before Stones was in the right place to fire home a loose ball with his left foot in the 68th minute.
Raheem Sterling crowned a superb second-half City display with an unstoppable free kick into the top corner late on.
They have 35 points from 17 games and are ahead of Leicester City on goal difference with Liverpool fourth on 34 points.
Palace remain in 13th place on 23 from 19 matches.
After a poor start to the campaign, City are beginning to look like the side that won consecutive titles before Liverpool knocked them emphatically off their perch last season.
While they had been praised for their defensive solidity, their fluent attacking style has also returned and the goals are beginning to flow.
Yet few would have bet on England defender Stones scoring twice, especially as his only previous goal in the Premier League came for Everton in the 2014-15 season.
"Another clean sheet, another win, it keeps the momentum going and two goals for myself which has been a long time," Stones said. "I put pressure on myself to contribute with a few goals and sometimes it doesn't click, but today it did."
"It was something we can only dream of," Stones said.
City were held at bay for the rest of the half by a stubborn Palace but they came alive after the break.
Gundogan showed great control to engineer some space before looking up and curling the ball beyond keeper Vicente Guaita.
Stones then showed a striker's instinct to dispatch a low shot past Guaita who had done well to save Ruben Dias's header.
There was still time for Sterling, whose scoring has dried up this season, to whip a superb free kick past the unfortunate Palace keeper who stood no chance with any of the goals.