Pogba opened the scoring on 19 minutes after Robert Snodgrass was ruled to have fouled Juan Mata just inside the area, but United struggled to build on that lead.
Felipe Anderson, who had earlier seen a goal ruled out for offside, equalised early in the second half for West Ham.
Substitute Michail Antonio twice went close to giving Manuel Pellegrini’s side their first away win of 2019, hitting the bar from 20 yards and then seeing a downward header saved brilliantly on the upward bounce by David de Gea.
Yet it was Pogba who proved the match winner, driving in from the spot with 10 minutes left after Anthony Martial, clear through on goal, was brought down by Ryan Fredericks.
Victory was much needed for manager Ole Gunnar Solskjaer after a run of four defeats in five matches, especially after he decided to rest Scott McTominay and Marcus Rashford for Tuesday’s Champions League quarter-final, second leg at Barcelona.
A vital three points lift Solskjaer’s men up to fifth and within two points of Chelsea, who travel to title-chasing Liverpool on Sunday.
– Pogba on the spot –
Pogba has been going through a dip in form of late, and did little to endear himself to United fans last month by publicly flirting with a summer move to Real Madrid.
There were signs at first that this might be another day of frustration for the French World Cup winner. In the opening minutes he could be seen grumbling at his team-mates for playing the ball long and then he cast his gloves to the turf after losing a battle for possession.
He did, however, end his wait for a goal from the spot, with what was the first-half’s only shot on target.
The home side could have been behind before then as Anderson swept in former United striker Javier Hernandez’s knockdown but was ruled offside. Television replays, though, suggested the Brazilian was played on by the trailing foot of Diogo Dalot.
But after going behind to Pogba’s penalty, West Ham enjoyed an extended spell of pressure, going close when Snodgrass’ corner was flicked across goal by Anderson and Manuel Lanzini was just unable to force his way between Marcos Rojo and Phil Jones to get a touch at the far post.
A quiet Old Trafford mumbled nervously, with good reason, as the impressive Anderson equalised four minutes into the second half from a Lanzini cross.
United had been their own worst enemies in the build-up; a slack De Gea throw out saw Pogba lose possession, with Snodgrass taking advantage to give Lanzini the space to deliver the ball in.
Solskjaer’s response was to throw on Rashford, who immediately tested Lukasz Fabianski with a cross-shot on the run that was well saved, then headed over from close range after West Ham had failed to clear a corner.
Most of the chances were coming at the other end as Antonio crashed the crossbar and then looked on in disbelief as De Gea somehow clawed his header to safety as it bounced towards the top corner.
Instead, Pogba’s poise from the spot won the day after Martial was chopped down by Fredericks as he raced clear on goal from Rashford’s flick.
Download our app and read this and other great stories on the move. Available for Android and iOS.