Martin Laursen's 84th-minute winner helped Aston Villa to sixth place in the Premier League after an entertaining match against Tottenham.
Mellberg scored his second goal of the season
Olof Mellberg put Villa in front when he rose unopposed to head home Ashley Young's free-kick on 40 minutes.
Spurs equalised in the 79th minute when Jermain Defoe finished acrobatically after Dimitar Berbatov set him up.
But Laursen secured the points to move Villa into sixth place when he headed home Gareth Barry's inswinging corner.
Both teams had been among the most entertaining in the Premier League over the festive period, so goals were always likely to feature.
Villa manager Martin O'Neill made one enforced change with Luke Moore replacing the injured John Carew up front, while Stilian Petrov slotted in to the right side of midfield in place of Shaun Maloney.
Spurs boss Juande Ramos, keen to reinforce Tottenham's defence after the 6-4 thriller against Reading, recalled Michael Dawson in place of Ledley King, with Didier Zakora taking Pascal Chimbonda's place at right-back.
Midfielder Tom Huddlestone made way for Kevin-Prince Boateng, while Robbie Keane was relegated to the bench, handing Defoe only his second start of the season alongside Dimitar Berbatov up front.
Berbatov cut a forlorn figure up front for Spurs
Boateng, making only his third start for since signing from Hertha Berlin in the summer, lacked the direct running of Huddlestone, which forced Dimitar Berbatov to drop deeper in search of the ball.
The uncertainty of the Bulgaria international's future at White Hart Lane had dominated the build-up, and the striker's constant gesticulations and impromptu one-man deliberations to referee Steve Tanner could have graced one of Shakespeare's finest tragedies.
But his side had more pressing concerns containing Villa's Gabriel Agbonlahor and Ashley Young as the strikers caused havoc pulling centre-backs Dawson and Younes Kaboul wide with intelligent runs and blistering pace.
It was Dawson's foul on Agbonlahor that created Villa's first chance, but Young's vicious right-footed free-kick was unconvincingly parried by Paul Robinson.
O'Neill will be scratching his head wondering how Laursen managed to blaze over the bar from 10 yards with an open goal to aim at on 24 minutes.
The Spurs defence had failed to clear a dangerous Petrov cross from the byeline, which deflected straight into Laursen's path, but the Dane somehow missed the target with Robinson committed.
But Villa took a deserved lead on 40 minutes when Mellberg headed Young's inswinging free-kick into the bottom right corner past Robinson.
The Sweden international was helped enormously when Boateng clattered into Dawson to rise unopposed from six yards.
Berbatov was denied an equaliser two minutes from the interval when he fired his well-struck shot straight at Scott Carson - a yard either side of the England keeper and Spurs would have been level.
Ramos, clearly unimpressed with Spurs' impotent first 45 minutes, made three bold attacking changes in the first 12 minutes of the second half, bringing on Huddlestone, Keane and Jamie O'Hara for Boateng, Aaron Lennon and Kaboul.
Although the changes beefed up Spurs' attacking potential, it was their continuing fragility at the back that will concern the Spaniard.
Moore should have doubled Villa's lead on 68 minutes, but he scuffed his side-footed shot from Petrov's dangerous cross.
Spurs' endeavours were eventually rewarded when Berbatov's header found Defoe inside the box and the striker acrobatically finished past Carson to give the north London side fresh impetus and hope.
But yet more uncertainty in defence gifted Villa the three points when O'Hara lost track of Laursen at the near post and the defender rose unopposed to meet Barry's corner with a thumping header.
Aston Villa winning goalscorer Martin Laursen:
"I thought we played really well, we believed we could score and I was happy to get the winning goal.
"We need to get something out of set pieces, especially goals from defenders, so I'm even more happy with Olof Mellberg's goal.
"Overall I couldn't be happier with our form over the Christmas period."
Tottenham assistant manager Gus Poyet:
"We had a chance (to win) the game, we changed the system (in the second half) and we were controlling the whole game.
"But we conceded two goals from set pieces again, it's not about individuals, but week-in week-out it's different players, it's a team problem.
"We are going to have to change, maybe we are going to make big changes."
Aston Villa: Carson, Mellberg, Laursen, Davies, Bouma (Maloney 84), Petrov, Reo-Coker, Barry, Young, Agbonlahor, Moore (Gardner 74).
Subs Not Used: Taylor, Harewood, Knight.
Tottenham: Robinson, Zokora, Kaboul (O'Hara 57), Dawson, Lee, Jenas, Malbranque, Boateng (Huddlestone 46), Lennon (Keane 54), Berbatov, Defoe.
Subs Not Used: Cerny, Taarabt.
Booked: Malbranque, Dawson, Zokora.
Referee: Steve Tanner (Somerset).
BBC Sport Player Rater man of the match: Aston Villa's Gabriel Agbonlahor 7.50 (on 90 minutes).
Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.