Everton deny City top spot
David Moyes' side, who had not won in seven matches, took control within the opening 20 minutes through Cahill's early effort and a fine strike from Baines. After Everton's Victor Anichebe was sent off for a second yellow card just before the hour, City halved the deficit through Phil Jagielka's own goal.
Despite constant pressure, City could not find an equaliser and missed out on the chance to move top of the table at Christmas for the first time in 81 years as their seven-match unbeaten run came to an end. They also had defender Kolo Toure dismissed in stoppage time to complete a miserable evening that ruined Tevez's return to action just hours after he decided to withdraw a transfer request.
Everton's victory was just their fourth in the league this season and ended a seven-game winless run. "The achievement is massive. We've not got rewards in the last couple of months but we showed our mettle and deserved to win," said Cahill after the game. "This team works hard for each other and we're proud of the result."
Moyes added: "Tim Cahill takes the fight to people - he's the one who leads us into battle. We've moved him about and he willingly does it. His attitude is terrific and he puts himself on the line for his team."
It had been billed as Tevez's big night but Everton took the lead in the fourth minute. Anichebe failed to turn a header on target from a Baines cross. But Seamus Coleman collected the ball and clipped over a cross that was glanced in at the near post by Australian midfielder Cahill.
As the hosts looked for a response, Yaya Toure's cross-field pass picked out David Silva but the Spanish winger thumped a shot narrowly wide of goal. The pressure continued and from Aleksander Kolarov's corner, Mario Balotelli had a header saved by Tim Howard.
Pablo Zabaleta was still in the changing rooms getting treatment after a clash of heads with Cahill when Everton scored a second, once again thanks to fine work by Baines. The full-back broke forward and fed Anichebe, whose cross was touched back by Cahill for Baines to sweep a curling shot into the net.
City faced further disruption at the break when Adam Johnson came on to replace James Milner at the start of the second half. But Howard was soon forced into another scrambling save as he pushed away a powerful strike from Kolarov. The Serbian also saw a shot from just outside the area fly narrowly wide of the post.
Just before the hour, Everton's task was made far harder by Anichebe's dismissal. Minutes after he was booked for a challenge on Joe Hart, with Moyes about to take him off, Anichebe flew into Pablo Zabaleta and was shown a second yellow card.
After another scramble on the edge of the Everton area, Gareth Barry's dipping shot was too high to test Howard. But Everton paid the price for being unable to clear when Johnson fed Yaya Toure and the midfielder's shot deflected off Jagielka and crept inside the post.
Johnson curled another shot just over the bar as Rodwell could only knock a clearance to the edge of the area. They went even closer when Yaya Toure lobbed into space and Balotelli broke clear only to see his shot come back off the post before Howard denied Tevez with the follow up. But as City desperately pressed forward, Kolo Toure was also shown a second yellow card for a pull on Diniyar Bilyaletdinov.