Guardiola's side had 18 shots and 74 percent of the possession but left Selhurst Park ruing a series of misses on a significant night in the title race.
Bernardo Silva and Aymeric Laporte were guilty of the most glaring miscues, with Palace keeper Vicente Guaita keeping the leaders at bay with several saves.
With second-placed Liverpool having won at Brighton on Saturday, City are now just four points clear of Jurgen Klopp's team.
Liverpool can close to within one point of City if they win their game in hand at fourth-placed Arsenal on Wednesday.
But Guardiola showed no signs of losing his cool as he insisted he was happy with City's performance and their position in the title battle.
"We played a good game and created a lot of chances but couldn't convert. Sometimes it happens," he said.
"I would prefer to have won, of course, but the way we played was amazing in a difficult stadium with the grass not perfect.
"There are many games still to play. We have to win a lot but the way we played, no regrets about the team."
Given Liverpool's red-hot form, the stalemate in south London could tip the balance of power towards Merseyside.
Liverpool have been so relentless that City need to be perfect to hold them off, and this draw, together with the recent defeat against Tottenham, have left them vulnerable to the Reds' sustained assault.
"Luck doesn't exist in football. We have to score goals and we didn't do it," Guardiola said.
After making a host of changes for the goalless Champions League tie against Sporting Lisbon last week, Guardiola recalled Kevin De Bruyne and Riyad Mahrez as he reverted to the line-up that dominated the Manchester derby.
Guardiola insisted City were treating the match like "a final" because of the threat posed by Palace, who beat them 2-0 at the Etihad Stadium in October.
Mahrez tried to set the tone when he cut inside to the edge of the Palace area for a curling effort that whistled past the far post.