Diamanti gives the Hammers fans a late Christmas present from 12 yards
By Mark Ashenden
West Ham hoisted themselves out of the bottom three with a hard-earned victory over fellow strugglers Portsmouth.
After a tense opening, Alessandro Diamanti scored from the spot for his third in as many games after Hayden Mullins fouled substitute Luis Jimenez.
Pompey were more positive in the second half with Kevin Boateng and the lively Frederic Piquionne both going close.
But the Hammers held firm at the back and Radoslav Kovac nodded in Jimenez's curling free-kick to secure the points.
Following their excellent point against leaders Chelsea last week, it was three deserved points for manager Gianfranco Zola's men to claim only their fourth league win of the season and their first clean sheet in 16 league games.
It was a strangely timid opening for the table's bottom two clubs with any sign of forward movement soon quelled by two very congested midfields.
After two wins in five league games for new boss Avram Grant, the Pompey camp would have been a happy one in the build-up to Christmas but it was the home faithful who were singing on 23 minutes.
Having endured the early departure of injured Mark Noble, it was his replacement Jimenez who created their opening goal after being hacked down by former Hammers midfielder Mullins.
We have a long way to go - Grant
It was West Ham's seventh penalty this season and Diamanti had no problem in tucking the ball past keeper Asmir Begovic, who again deputised for David James.
The Italian's third goal in three games understandably produced a huge smile from Zola on the sidelines.
Portsmouth's best chance of the first half fell to a player without a goal for nearly five years as defender Tal Ben-Haim blazed over after a fine run.
West Ham picked up the pace and missed a golden opportunity to double the lead when Jack Collison dragged the ball wide after being set up by the trickery of the impressive Scott Parker.
Soon after the interval it was only the left hand of Begovic that prevented a second goal, the 32-year-old Bosnian tipping away Diamanti's shot after it deflected off Steve Finnan's boot.
Nwankwo Kanu was introduced to provide some much-needed support to striker Frederic Piquionne and the pair came close to creating an equaliser but keeper Robert Green was alert to the back-heeled pass.
The tension returned to the legs of the hosts and substitute Boateng begun to pull the strings for Portsmouth from midfield, although his downward volley was easily caught by Green.
Consistency is key - Zola
West Ham showed occasional glimpses of creativity despite focusing their attentions on their rearguard and Collison and Valon Behrami both went close in the final minutes to killing the game.
But with almost the final kick of the game, Jimenez swung in a free-kick to find the unmarked Kovac leaping brilliantly to power in his header past Begovic.
Portsmouth boss Grant now has much to ponder as he sees four of his players head to the Nations Cup in Angola, with the club still under a transfer embargo.
Portsmouth boss Avram Grant on Premier League survival: "Everything is possible. We have the quality to win. I've said so many times and I'm not a person to change my mind."
West Ham manager Gianfranco Zola: "It was a fantastic win, a massive one. I rated this as a six-point game, it was so important for the table and for morale.
"The boys won it with a lot of character and it will be a big boost for everybody."
90:00+4:24 The game is over, as the referee blows his whistle.
90:00+3:15 Free kick awarded for an unfair challenge on Valon Behrami by Kevin-Prince Boateng. Strike comes in from Luis Jimenez from
the free kick, save by Asmir Begovic. Luis Jimenez takes a short corner.
90:00+2:49 Jamie O'Hara challenges Luis Jimenez unfairly and gives away a free kick. Matthew Upson restarts play with the free kick.
90:00+2:06 Free kick awarded for an unfair challenge on Valon Behrami by Frederic Piquionne. Robert Green takes the direct free kick.
90:00+1:31 John Utaka takes a shot. Blocked by James Tomkins.
90:00+0:10 Substitution Frank Nouble comes on in place of Guillermo Franco.
89:45 Hermann Hreidarsson takes a shot from 25 yards. James Tomkins gets a block in.
88:27 The assist for the goal came from Luis Jimenez.
88:27 GOAL - Radoslav Kovac:West Ham 2 - 0 Portsmouth Radoslav Kovac finds the net with a headed goal from inside the area. West Ham 2-0 Portsmouth.
87:48 Free kick awarded for an unfair challenge on Luis Jimenez by Hermann Hreidarsson. Luis Jimenez crosses the ball,
86:54 Frederic Piquionne is penalised for a handball. Robert Green restarts play with the free kick.
86:28 Kevin-Prince Boateng gives away a free kick for an unfair challenge on Julien Faubert. Free kick taken by Robert Green.
84:43 Radoslav Kovac produces a left-footed shot from just outside the penalty box that misses to the left of the target.
83:24 Valon Behrami produces a right-footed shot from deep inside the six-yard box which goes wide of the left-hand post.
82:14 Corner taken right-footed by Luis Jimenez, James Tomkins produces a header from inside the area that goes over the crossbar.
81:35 Jack Collison takes a shot. Save made by Asmir Begovic. Short corner worked by Luis Jimenez.
80:13 Shot from long range by Jamie O'Hara goes wide of the left-hand post.
79:35 Frederic Piquionne takes a shot. Robert Green makes a save.
78:54 Younes Kaboul fouled by Guillermo Franco, the ref awards a free kick. Free kick taken by Younes Kaboul.
78:13 Substitution John Utaka is brought on as a substitute for Michael Brown.
74:02 Kevin-Prince Boateng produces a mishit left-footed shot from 12 yards. Robert Green makes a comfortable save.
72:50 Inswinging corner taken by Luis Jimenez, save by Asmir Begovic.
71:08 Substitution Valon Behrami replaces Alessandro Diamanti.
69:07 Frederic Piquionne takes a shot. Blocked by James Tomkins.
67:11 Frederic Piquionne takes a shot from just inside the penalty box which clears the crossbar.
65:21 Inswinging corner taken left-footed by Alessandro Diamanti from the right by-line, Hermann Hreidarsson makes a clearance.
64:07 Unfair challenge on Jamie O'Hara by Herita Ilunga results in a free kick. Jamie O'Hara takes the free kick.
62:13 Direct free kick taken by Julien Faubert.
62:13 Booking The referee shows Jamie O'Hara a yellow card.
61:03 Jamie O'Hara concedes a free kick for a foul on Julien Faubert.
Correction - 60:25 Kevin-Prince Boateng takes a shot. Herita Ilunga gets a block in. Jamie O'Hara takes the inswinging corner, James Tomkins
manages to make a clearance.
60:25 Michael Brown takes a shot. Herita Ilunga gets a block in. Inswinging corner taken left-footed by Jamie O'Hara, clearance
made by James Tomkins.
60:07 The offside flag is raised against Scott Parker. Indirect free kick taken by Michael Brown.
58:40 Effort on goal by Alessandro Diamanti from long range goes harmlessly over the target.
54:32 Outswinging corner taken left-footed by Jamie O'Hara, Matthew Upson makes a clearance.
53:53 Substitution Nwankwo Kanu joins the action as a substitute, replacing Aruna Dindane.
49:50 Effort on goal by Julien Faubert from outside the box goes harmlessly over the bar.
48:50 Free kick awarded for an unfair challenge on Steve Finnan by Herita Ilunga. Direct free kick taken by Younes Kaboul.
48:31 Unfair challenge on Younes Kaboul by Luis Jimenez results in a free kick. Tal Ben-Haim restarts play with the free kick.
48:01 Herita Ilunga fouled by Aruna Dindane, the ref awards a free kick. Robert Green restarts play with the free kick.
46:43 Alessandro Diamanti takes a shot. Asmir Begovic makes a save. Corner taken by Alessandro Diamanti, Matthew Upson takes a shot.
Save by Asmir Begovic.
45:49 Scott Parker challenges Aruna Dindane unfairly and gives away a free kick. The free kick is delivered left-footed by Jamie
O'Hara from right channel, Matthew Upson manages to make a clearance.
45:01 The game restarts for the second half.
45:01 Substitution Kevin-Prince Boateng on for Nadir Belhadj.
45:00+4:10 The referee calls an end to the first half.
45:00+2:55 Hayden Mullins gives away a free kick for an unfair challenge on Radoslav Kovac. Herita Ilunga takes the direct free kick.
45:00+1:59 Effort from inside the area by Jack Collison misses to the left of the target.
45:00+0:36 Foul by Hermann Hreidarsson on Guillermo Franco, free kick awarded. Free kick crossed left-footed by Alessandro Diamanti.
43:03 Herita Ilunga challenges Aruna Dindane unfairly and gives away a free kick. The free kick is delivered left-footed by Jamie
O'Hara from right wing, Matthew Upson makes a clearance. Corner taken left-footed by Jamie O'Hara, save by Robert Green.
41:10 The assistant referee signals for offside against Frederic Piquionne. Robert Green takes the free kick.
40:47 Nadir Belhadj takes a shot. Save made by Robert Green.
39:01 The referee blows for offside. Free kick taken by Robert Green.
37:39 Effort from just outside the box by Tal Ben-Haim goes over the bar.
36:55 Foul by Matthew Upson on Frederic Piquionne, free kick awarded. The free kick is swung in left-footed by Jamie O'Hara, James
Tomkins manages to make a clearance.
35:16 Aruna Dindane is penalised for a handball. James Tomkins restarts play with the free kick.
33:55 Foul by Alessandro Diamanti on Hayden Mullins, free kick awarded. Jamie O'Hara has an effort direct from the free kick, Robert
Green makes a comfortable save.
32:49 Alessandro Diamanti fouled by Aruna Dindane, the ref awards a free kick. Free kick taken by Robert Green.
31:33 Free kick awarded for an unfair challenge on Guillermo Franco by Nadir Belhadj. Alessandro Diamanti restarts play with the
free kick. Shot from deep inside the area by Jack Collison clears the crossbar.
29:54 Aruna Dindane challenges Scott Parker unfairly and gives away a free kick. Alessandro Diamanti takes the free kick.
28:48 Free kick awarded for an unfair challenge on Herita Ilunga by Aruna Dindane. Alessandro Diamanti takes the free kick.
25:16 Unfair challenge on Frederic Piquionne by Alessandro Diamanti results in a free kick. Free kick taken by Steve Finnan.
24:24 Frederic Piquionne is caught offside. Robert Green takes the indirect free kick.
22:54 Luis Jimenez provided the assist for the goal.
22:54 GOAL - Alessandro Diamanti:West Ham 1 - 0 Portsmouth Penalty taken left-footed by Alessandro Diamanti and scored. West Ham 1-0 Portsmouth.
22:06 Penalty awarded for a foul by Hayden Mullins on Luis Jimenez.
20:28 Alessandro Diamanti crosses the ball from the free kick left-footed from left channel, Tal Ben-Haim manages to make a clearance.
20:28 Booking Michael Brown goes into the book.
19:03 Michael Brown concedes a free kick for a foul on Scott Parker.
18:07 James Tomkins crosses the ball from the free kick right-footed from own half.
18:07 Booking Aruna Dindane is shown a yellow card for unsporting behaviour.
18:03 Foul by Aruna Dindane on Scott Parker, free kick awarded.
15:31 Substitution Mark Noble goes off and Luis Jimenez comes on.
12:41 Jamie O'Hara concedes a free kick for a foul on Scott Parker. Free kick taken by Radoslav Kovac.
Correction - 10:55 The assistant referee flags for offside against Frederic Piquionne. James Tomkins takes the indirect free kick.
10:55 Frederic Piquionne is caught offside. Indirect free kick taken by James Tomkins.
8:44 Free kick awarded for a foul by Michael Brown on Scott Parker. Mark Noble restarts play with the free kick.
7:15 Effort by Scott Parker from a long way out goes over the crossbar.
5:26 Free kick awarded for a foul by Alessandro Diamanti on Hayden Mullins. Free kick taken by Asmir Begovic.
4:39 Aruna Dindane gives away a free kick for an unfair challenge on Alessandro Diamanti. Direct free kick taken by Mark Noble.
0:17 Inswinging corner taken from the left by-line by Michael Brown, clearance by James Tomkins.
0:00 The ref blows the whistle to begin the match.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.