Romelu Lukaku continued his good form as West Brom beat Swansea to move up to seventh in the Premier League.
Luke Moore gave visitors Swansea an early lead with a well-taken header before Lukaku scored at the near post.
The Belgian then missed a penalty, yet the Baggies moved in front when Jonathan de Guzman scored an own goal.
Swansea responded and thought they had earned a point but substitute Roland Lamah had a goal controversially ruled out for offside late on.
Lamah surged into the West Brom box and had the ball in the net after his cross cannoned back to him.
But referee Lee Mason decided that it came back off a Swansea team-mate as he tucked in, meaning he was offside as he scored, even though replays showed that the ball hit West Brom's Gareth McAuley and Ben Foster before returning to the Belgian.
It was a stroke of fortune for Steve Clarke's team, who weathered a late storm from the Swans, but the Baggies were rewarded for an improved display after the break as they overtook their opponents in the table.
The result ends West Brom's run of three straight defeats against Swansea and puts them within four points of fifth-placed Arsenal, who have a game in hand.
And after another strong performance by Lukaku, they can certainly put pressure on teams around them such as Everton, Liverpool and Swansea.
Michael Laudrup's side have already qualified for the Europa League next season, by virtue of their Capital One Cup success.
Yet after a week where the Dane signed a new contract keeping him at the club until 2015, the finale to this encounter left him with a sour taste in his mouth.
Before Moore's smartly-taken header, his team should already have led but Michu, so often their saviour this season, wasted two decent openings during a period in which the Swans were in total control.
It took 10 minutes for the hosts to gain any sort of coherent possession, and it wasn't until the half-hour mark when they managed their first chance, Chris Brunt firing over from the angle.
Moments later, though, Swansea went ahead. Ben Davies' cross was deflected for a corner, and Moore held off Claudio Yacob to guide his header in from De Guzman's corner for his second goal in two games.
With little to cheer in the first period, the home supporters were becoming understandably anxious as West Brom's midfield failed to support Lukaku.
And when the equaliser came it was out of the blue as Brunt flicked on Ben Foster's clearance, Graham Dorrans crossed first time, and the striker, on loan from Chelsea, finished at the near post for his 13th goal of the season.
The hosts improved after the break and should have gone ahead when referee Lee Mason pointed to the spot after Wayne Routledge's trip on James Morrison.
Unfortunately for Clarke's team, Lukaku's spot-kick was poor, Michel Vorm diving easily to his right to make the save.
Although Michu has been the headline-grabber for Swansea this season, midfielder De Guzman - on loan from Villarreal - has been one of the key supporting acts, yet his part in the game's third goal was one he will wish to forget.
McAuley headed towards goal from a corner, but although Angel Rangel headed off the line, it cannoned into the goal off the Dutchman.
Sensing defeat, Laudrup made a host of substitutions, but Michu again fired off-target following Nathan Dyer's lay-off.
Lamah then looked like he had earned a point as the Swansea fans celebrated but he was denied by the assistant referee's flag three minutes from the end.
Swansea boss Michael Laudrup: "Football is about emotions and all that. You are up and down in 90 minutes and you talk about decisions made by the referee, but it's a part of the game.
"What makes me frustrated is when you see our disallowed goal. We are not talking about a decision, we are talking about the rules of football.
"When the ball comes back not off one player, but two, it cannot be offside. It's like giving offside from a throw-in. It's frustrating."
West Brom boss Steve Clarke on Swansea's disallowed goal: "I've got to agree with Michael Laudrup. If you look at it, it last came off Ben Foster, which means the fellow is not offside.
"We were fortunate on that one, but the effort we put in, sometimes you get your luck and we earned it.
"[The defeat in November] was something in our minds. We went down there on the back of a good run and they turned us over, so for us to play like we did today, we showed that on our day we can match anybody in the Premier League."