Substitute Kei Kamara scored his first goal in English football with six minutes left to cancel out Leon Osman's first-half header for Everton.
Chris Hughton's hard-working side were not finished yet, though, and secured a first Barclays Premier League win since December 19 when Holt scored at the far post.
Defeat was, however, harsh on Everton, who had been the better side for long spells, with Marouane Fellaini central to all their attacking threat.
Hughton had deployed Holt and Luciano Becchio in attack, looking to arrest a run of just one goal in the last six which has left his men looking over their shoulders at the battle for survival.
Norwich created the first opening on five minutes.
Wes Hoolahan played Robert Snodgrass into the left side of the Everton penalty area, but his angled shot was blocked by Sylvain Distin as the ball looped up over the crossbar for a corner.
Everton then forced Norwich keeper Mark Bunn into action when he first palmed away a deflected cross from fit-again right-back Seamus Coleman and then had to be alert as Nikica Jelavic turned his marker to drill a low shot goalwards from 10 yards.
Both teams continued to press, but when Norwich midfielder Jonny Howson found space for a shot some 25 yards out, his goalbound effort cannoned off the back of team-mate Holt.
At the other end, Norwich centre-half Michael Turner threw himself in front of Fellaini's drive.
The Belgian was then involved in an altercation with Bradley Johnson after being caught on the knee by the Norwich midfielder, which was missed by referee Lee Mason - and he took retribution by barging Johnson over on the far touchline. That was seen and resulted in a free-kick as well as a stern talking to.
On 35 minutes, the ball broke for Holt at the edge of the Everton penalty area, but the Norwich captain could not get enough power on his shot, which was well saved by Tim Howard, making his 300th Everton appearance.
It was the visitors, though, who took the lead six minutes before half-time.
Left-back Leighton Baines floated the ball across the Norwich six-yard box, where it was missed by both Johnson and Sebastien Bassong, allowing an unmarked Osman to glance his header past Bunn.
The home side looked for a response at the start of the second half, but lacked enough width to really stretch the Everton defence.
Toffees midfielder Steven Pienaar got into the left side of the Norwich penalty area and pulled the ball back through the six-yard box, where any sort of touch would have put it into the net.
Hughton made a change on the hour, as Becchio was replaced by Kamara, on-loan from Major League Soccer club Sporting Kansas City.
The Sierra Leone international almost became an instant hero when he tried an acrobatic scissors-kick, but it lacked the power to test Howard.
Kamara headed wide as he was being tugged back by Coleman, but with Holt flagged offside, the free-kick went Everton's way.
At the other end, Darron Gibson floated an effort over from 20 yards.
Hughton looked to add some width to Norwich's attack as Anthony Pilkington replaced Hoolahan while Belgium forward Kevin Mirallas came on for Everton with 12 minutes left, as Jelavic made way.
Norwich had more tempo now and were level on 84 minutes.
Pilkington's run down the left saw the ball blocked behind for a corner.
Snodgrass' delivery picked out Kamara, and his downward header beat Howard as Carrow Road erupted.
The Canaries pressed for a dramatic winner, with Distin's superb block keeping out Holt's close-range effort.
However, there was still time for another chance, which the Norwich captain dispatched at the far post after a deep cross from Russell Martin had been nodded on by Bassong.