Ki winner downs in-form Toffees at Goodison.
Sunderland ensured Boxing Day delight as they put up stubborn resistance to bag all three points at in-form Everton.
Goalkeeper Vito Mannone was in sparkling form as Ki Sung-Yueng's first-half penalty secured a key win for the Black Cats.
Gus Poyet's side inflicted the Toffees' first home defeat of the calendar year and only their second reverse in the Barclays Premier League this season.
Ki netted the only goal midway through the first half, scoring coolly from the spot after Everton keeper Tim Howard had been sent off for scything down the South Korean in the box.
But it was Mannone who stole the show at the other end, pulling off a string of magnificent saves including a point-blank block to deny Phil Jagielka and two full-length saves on Bryan Oviedo and Ross Barkley.
The victory - Sunderland's first at Goodison Park in the league since 1996 – also yielded another welcome clean sheet, the Black Cats' third in succession in the Barclays Premier League.
Everton went into the game having taken 13 points from the last 15 available but they couldn't find a way past a Sunderland side who battled for everything in order to secure their first away success of the campaign.
And Poyet will have been delighted with the shut-out having reshuffled his back line ahead of the game, with Valentin Roberge and Modibo Diakite replacing the suspended Wes Brown and injury victim John O'Shea.
Meanwhile Jack Colback and Steven Fletcher returned to the starting line-up, replacing Emanuele Giaccherini and Jozy Altidore respectively.
Everton, full of confidence given their recent run of form, started brightly but it was Sunderland who had the first half-chance when Fabio Borini cut inside 30 yards out and hammered a shot over the top.
The visitors were soon tested, though, as Oviedo fired straight at Mannone from 25 yards before a dangerous corner from the left was headed high into the crowd by Gareth Barry at the back post.
But Sunderland were looking compact and lively on the break, with Colback testing Howard low down after Borini rolled a crossfield ball into his path on the edge of the box.
And the visitors stunned Goodison Park by taking the lead in dramatic circumstances as the half reached its midway point.
Leon Osman miscontrolled a short goal kick on the edge of his own area and was robbed by Ki, who surged through on goal only to be brought crashing down by Howard just as he looked set to slot the ball into the empty net.
A dismissal was the only outcome and the red card was duly produced, with former Wigan man Joel Robles stepping off the bench for his Everton debut as Osman made way.
The Spaniard's first task was to face Ki's penalty but he had no chance of stopping the South Korean's effort, which fizzed low into the corner.
Everton responded with a burst of pressure, but the visitors stood firm and almost engineered a second goal nine minutes before the break.
Ondrej Celustka's powerful drive from the edge of the box was spilled by Robles, who recovered well to block Seb Larsson's follow-up at close range.
And the Swede then fired a free-kick narrowly over the top as Sunderland ended the first half in the ascendancy.
Poyet's side could have gone ahead inside two minutes of the restart as Diakite, making his first appearance since September, nearly marked his return with a goal.
Larsson's inswinging free-kick caught the Everton defence napping and was knocked back across goal by Celustka before Diakite prodded the ball just over the angle of post and bar from six yards.
Fletcher then headed a Lee Cattermole cross straight at Robles, but back came Everton with a concerted spell of pressure as the visitors were forced to defend in numbers.
The home crowd thought their side had broken through 11 minutes into the second half when captain Jagielka met a corner with a powerful header from point-blank range, but Mannone pulled off a superb flying save to somehow block before dropping on the loose ball.
Mannone then claimed a Romelu Lukaku drive at his near post, while at the other end Borini slid a Celustka cross wide under pressure.
Sub Ross Barkley, on at half time, then fired narrowly over after Fletcher had warmed the gloves of Robles with a blast from the left-hand edge of the box.
Sunderland keeper Mannone was getting into something of a personal duel with Everton and he saved well from Barkley on 66 minutes, palming the youngster's shot away after the ball bounced awkwardly right in front of him.
Poyet introduced Giaccherini in place of Colback as he looked to give his side an outlet from the unstinting home pressure.
But still the hosts pushed forward, with Mannone saving well from Barkley before pulling off a stunning stop, diving full-stretch away to his left to tip away a scorcher from Oviedo which was destined for the top corner.
Fletcher had a great chance on the break 11 minutes from time after Giaccherini threaded a lovely pass through, but although the striker got the ball beyond Robles, his shot was wide of the post.
Everton continued to carve out opportunities, but Mannone was simply unbeatable. Barkley thought he'd levelled with a bullet of a free-kick six minutes from time, but there was the Italian again to make the save of the game, tipping the ball behind at full stretch.
And when the hosts finally did get the ball behind the visiting keeper, his colleagues chipped in with last-ditch efforts – Borini doing brilliantly to somehow head Nikica Jelavic's header up and over his own crossbar from almost on the line.
Sunderland sensed it was their day, and so it proved as three minutes of added time were successfully navigated.
There was a scare with almost the last action of the game as Lukaku just failed to touch home a corner as the ball flashed across the face of goal, but Sunderland held on to claim three excellent away points.
- Red Howard
- Osman (Robles)
- Mirallas (Barkley)
- Pienaar (Jelavic)
- Yellow Barry
- Colback (Giaccherini)
- Fletcher (Altidore)
- Adilson Cabral