Paul Dickov grabbed a brace as Blackburn battled back from a goal down to beat West Ham at Ewood Park.
Bobby Zamora put the Hammers ahead just before the break when he drove home Marlon Harewood's through-ball.
But Tomas Repka handled in the area 11 minutes after the interval and Dickov sweetly converted from the spot before adding a second moments later.
Harewood gave the visitors hope, heading home Zamora's cross, but Shefki Kuqi sealed the win after 76 minutes.
Blackburn had not scored in the league since Craig Bellamy's 89th-minute effort against Charlton on 5 November but soon put an end to that with three efforts in the second half.
The goals came later than expected after a storming start which saw West Ham grab the opener against the run of play.
Harewood picked up the ball just inside his own half and slid it through to Zamora, who beat advancing goalkeeper Brad Friedel with a low shot from 15 yards.
After Robbie Savage hit the crossbar and Dickov shot wide in the first half, Blackburn finally opened their account after Repka's handball.
He protested in vain as the referee pointed to the spot, and Dickov slotted home.
A minute later, the Scot extended the lead, pouncing on a defensive mix-up to score from close range.
Harewood restored hope for the Hammers in the 63rd minute, heading home Zamora's crisp cross, but it seemed only a matter of time before Blackburn would score again.
Savage was again denied by the woodwork four minutes later, rattling the bar with another free-kick after Repka had fouled Kuqi, who replaced Brett Emerton in the second half.
Finnish striker Kuqi then rewarded their faith, making the most of more poor West Ham defending to fire home a high ball into the box.
The Londoners had already suffered disappointment in the first half, when defender Danny Gabbidon was stretchered off after colliding with advertising hoardings, and their attempts to find another equaliser came to nothing.
Blackburn boss Mark Hughes:
"Credit to the guys - we went in 1-0 down at half-time and came out and showed real determination to get back into the game.
"We got the goal and then we got our noses in front, but they came straight back at us and got back on level terms.
"You think maybe it'll be a draw but our players went again and got another goal so we're absolutely delighted."
West Ham boss Alan Pardew:
"It (the penalty) was a tough one for us to take and changed the course of the game.
"From a great position, we were suddenly in a poor position."
"We regrouped, got a second and had a great chance to get a third, and perhaps go on and win the game, but it unfolded very unfortunately for us."
Blackburn: Friedel, Reid, Neill, Khizanishvili, Gray, Emerton (Kuqi 61), Savage, Tugay (Mokoena 79), Pedersen, Bentley (Jansen 90), Dickov.
Subs Not Used: Enckelman, Thompson.
Booked: Tugay, Gray, Dickov.
Goals: Dickov 56 pen, 57, Kuqi 76.
West Ham: Carroll, Repka, Ferdinand, Gabbidon (Dailly 21), Konchesky, Benayoun, Mullins, Noble (Bellion 61), Etherington, Harewood, Zamora (Aliadiere 76).
Subs Not Used: Newton, Hislop.
Booked: Noble, Konchesky, Repka, Ferdinand, Harewood, Carroll.
Goals: Zamora 45, Harewood 63.
Att: 20,370
Ref: M Riley (W Yorkshire).