Match ends, Middlesbrough 1, Millwall 2.
Stefan Maierhofer scored twice as Millwall climbed out of the relegation places and put paid to Middlesbrough's faint play-off hopes.
Maierhofer nodded in Lee Martin's cross at the far post and, after Millwall's David Forde saved from Danny Graham, repeated the trick to double the lead.
The hosts dominated the ball after the break, but Steve Morison should have done better on a rare counter-attack.
Emmanuel Ledesma's late free-kick was too little too late for Boro.
The result leaves them seven points short of sixth place, while Millwall are now one point and two places above the relegation zone.
Maierhofer, who signed for the Lions in March after leaving FC Koln as a free agent, had already headed into the side netting when the former Wolves striker met Martin's cross to open the scoring in 16 minutes.
The Austria international did not need to use all of his 6ft 8in frame for the second, stooping to nod in unmarked on the half-hour mark.
Middlesbrough's defence had failed to put pressure on Maierhofer for either goal, but the hosts looked as though they might force their way into match with long spells of possession after the break.
They struggled to create chances, however, and goalkeeper Dimi Konstantopoulos was forced into a save to push away Morison's low shot as he broke clear.
Ledesma's clipped free-kick, after a foul on Graham, halved the deficit, but Martin had a goal disallowed as Millwall finished on top.
Millwall manager Ian Holloway: "We had certain things to concentrate on and we did. We stuck to the game plan.
"I thought the two wide men - Martyn Woolford and Lee Martin - were excellent and the big lad, Stefan Maierhofer, got us in front with two good headers.
"I was actually disappointed not to win the second half because we had a few good chances to put the game to bed."
Middlesbrough manager Aitor Karanka: "We need to be much stronger if we want to build something for the future.
"What I have learned this season is that every time there has been talk and a possibility of the play-offs we have not performed and we have lost the next match.
"We need to change that mentality."
- 7LeadbitterSubstituted forMainat 74'minutes
- 18WhiteheadBooked at 40minsSubstituted forFriendat 85'minutes
- 10TomlinBooked at 59mins
- 6ButterfieldSubstituted forWilliamsat 60'minutes
- 1FordeBooked at 81mins
- 28MaloneBooked at 72mins
- 17WilliamsSubstituted forMorisonat 62'minutes
- 13MartinBooked at 75mins
- 42MaierhoferSubstituted forAbdouat 73'minutes
- 29GarvanSubstituted forMcDonaldat 85'minutes
- Darren Bond
- Shots on Target
Second Half ends, Middlesbrough 1, Millwall 2.
Offside, Millwall. Scott McDonald tries a through ball, but Lee Martin is caught offside.
Attempt saved. Scott McDonald (Millwall) right footed shot from outside the box is saved in the centre of the goal. Assisted by Steve Morison.
Foul by Emmanuel Jorge Ledesma (Middlesbrough).
Lee Martin (Millwall) wins a free kick in the defensive half.
Attempt saved. Martyn Woolford (Millwall) left footed shot from the left side of the box is saved in the centre of the goal. Assisted by Scott McDonald.
Corner, Millwall. Conceded by Kenneth Omeruo.
Substitution, Middlesbrough. George Friend replaces Dean Whitehead.
Substitution, Millwall. Scott McDonald replaces Owen Garvan.
Attempt missed. Curtis Main (Middlesbrough) left footed shot from outside the box is high and wide to the left. Assisted by Albert Adomah.
Attempt saved. Martyn Woolford (Millwall) left footed shot from the right side of the six yard box is saved in the bottom left corner. Assisted by Steve Morison.
Offside, Millwall. Owen Garvan tries a through ball, but Steve Morison is caught offside.
Offside, Millwall. Martyn Woolford tries a through ball, but Steve Morison is caught offside.
David Forde (Millwall) is shown the yellow card.
Goal! Middlesbrough 1, Millwall 2. Emmanuel Jorge Ledesma (Middlesbrough) from a free kick with a left footed shot to the top right corner.
Danny Graham (Middlesbrough) wins a free kick in the attacking half.
Foul by Mark Beevers (Millwall).
Attempt blocked. Lee Martin (Millwall) right footed shot from outside the box is blocked.
Attempt saved. Martyn Woolford (Millwall) right footed shot from the right side of the box is saved in the bottom left corner. Assisted by Steve Morison.