Alessandro Diamanti scored his third goal in as many games to maintain West Ham's hopes of survival and keep Portsmouth rooted to the foot of the Barclays Premier League.
The Italian forward struck from the penalty spot at Upton Park midway through the first half of a match short on quality, clear-cut opportunities or reasons to suggest either team deserves to be higher in the table. Radoslav Kovac added the second just before the end.
Hammers boss Gianfranco Zola will be hoping this was a repeat of last year's Boxing Day win over Pompey as his side then went on a decent run in the second half of the season.
Portsmouth had never lost at West Ham's ground in the Premier League but they never looked like continuing that run with this feeble effort.
To make matters worse for visiting boss Avram Grant, he now loses several players because of the African Nations Cup - not that they made an impact in this game.
Pompey will be reminded they have to defy the odds to retain their top-flight status this season as most teams bottom at Christmas go down - West Brom in 2005 are the only team to avoid it in Premier League history.
Grant's men, however, were coming off the back of a morale-boosting victory over Liverpool and there was a mood of optimism during the week. The Hammers also had a decent result in their previous game, against Chelsea, but it did not mean this clash was any sort of spectacle.
Both sides were nervous, struggled to keep possession and gave a clear explanation as to why they started the festive period 19th and 20th in the table.
The first significant moment came when Zola was forced into a change, in the 16th minute, when Mark Noble needed treatment for a knock, with attack-minded Luis Jimenez coming on for his first appearance since scoring against Burnley in November.
With chances not being created, referee Lee Probert was kept busy, firstly by Aruna Dindane's fouls on Diamanti while Scott Parker earned a yellow. Michael Brown also went in the book for a knee into Parker's thigh.
With the tackles flying in, it was no surprise that a mis-timed challenge led to West Ham's 23rd minute opener.
The move started with Julien Faubert's ball forward for Parker, Younes Kaboul failing to clear when he had a chance and Guillermo Franco getting blocked from his route to goal.
It fell invitingly for Jimenez, who looked to be tripped by former Hammers midfielder Hayden Mullins but replays showed that Brown was the culprit.
Either way, Diamanti confidently tucked away the penalty when Probert pointed to the spot. After goals against Bolton and Chelsea in his last games, it took his overall tally for the season to five.
Jack Collison almost took advantage of a quick free-kick to double the lead - but the Welshman volleyed over the crossbar. He then fired just wide from close range in first-half stoppage-time when Parker pulled the ball back from the byline.
Grant needed to change things drastically so brought on Kevin-Prince Boateng, who had been struggling with a virus ahead of the match, for Nadir Belhadj. It did not take long for Dindane to be replaced either after his woeful first half, with Kanu being brought on.
They could have fallen further behind two minutes after the restart when Diamanti's angled drive deflected off Steve Finnan and Asmir Begovic, in goal as David James is still nursing a calf complaint, had to leap across his goal to pull off a fine save. Diamanti also fired over with a cheeky 45-yard lob.
Boateng caused the hosts problems and almost embarrassed Herita Ilunga when the Hammers full-back left a ball for Robert Green to collect. Boateng took the ball away from goalkeeper and defender but his finish went wide.
Pompey striker Frederic Piquionne had an effort saved late on, while Collison and substitute Valon Behrami both went close for the hosts.
Kovac headed home Jimenez's free-kick a minute from full-time to seal the win.
Copyright (c) PA Sport 2009, All Rights Reserved.