Manchester City climbed to the top of the table with a hard-fought 1-0 win over battling Crystal Palace at the Etihad.