Cahill put Everton ahead in the sixth minute, the Australian turning just inside the box and seeing his shot slip through the grasp of goalkeeper John Ruddy, playing against his former team-mates following his summer switch from Goodison Park.
Cahill doubled his side's advantage seven minutes before the break, capitalising on some slack defending to head home at the second attempt. Norwich pulled a goal back a minute into the second half, Adam Drury's cross being met with a thumping header by Andrew Crofts, who claimed his first goal for the club.
City then levelled in the 59th minute with Drury again involved. His quick throw found Andrew Surman and he cut inside the box to curl the ball past Tim Howard, also his first for the club.
But Everton regained the lead within seconds, half-time substitute Diniyar Bilyaletdinov curling the ball into the top corner from Steven Pienaar's clever backheel.
Cahill completed his hat-trick with 19 minutes left, eventually finding the net after Phil Neville crossed, while Grant Holt - Norwich's top scorer last season with 30 goals - came on as a second-half substitute after recovering from a thigh injury.