Match ends, Millwall 2, Middlesbrough 1.
Millwall extended their unbeaten run to three Championship games as they beat Middlesbrough at The Den.
Jed Wallace slotted the hosts in front after a swift counter-attack, before George Saville fired in from close range to double the lead.
Jordan Archer's error gave Boro hope as he failed to keep out Stewart Downing's routine effort from 35 yards out.
But the visitors struggled to create more chances late on as they fell to a third defeat in their past four games.
Their margin of defeat could have been greater, but Darren Randolph made a smart save to deny Steve Morison when the Lions striker was played through on goal.
The result increases the pressure on Middlesbrough manager Garry Monk, as his side fell below Ipswich and Preston to 10th in the table, five points outside the play-off places.
Millwall stay 17th but are now nine points above the relegation zone and have the 11th best goal difference in the Championship.
Millwall boss Neil Harris:
"Top teams don't particularly like coming here this season. We are what we are as a football club. We have to make it hostile, intimidating. We have to play aggressive football with and without the ball.
"We play very good football as well - you see that with the first goal in particular. We haven't got players that are worth millions of pounds, but I think I've got a lot of players growing in reputation at this level because they are very good footballers.
"The biggest credit I can give them is they are a very good team - as in, together. I thought we made a top Middlesbrough side look really ordinary today at times. The only disappointment is that we didn't keep a clean sheet and we didn't go and score four or five."
Middlesbrough boss Garry Monk:
"We know coming here - we've prepared the players all week - the direct play it's going to be: that battle, that physical element to it. To then be so naive and lose a lot of those battles in that first half in important areas - it's naive, schoolboy stuff.
"I've said it too many times this season. It's never through a lack of effort within the group. It's just comes back to naivety. I feel like a broken record at the moment.
"And you don't expect that from the level of players we've got, but unfortunately it's happening too many times this season. But we have no other choice but to work and try and come through it."
- 12RomeoBooked at 29mins
- 3MeredithBooked at 90mins
- 14J WallaceBooked at 89mins
- 22O'BrienSubstituted forCraigat 86'minutes
- 9GregoryBooked at 27minsSubstituted forWilliamsat 74'minutes
- 22ChristieSubstituted forTraoréat 80'minutes
- 2da Silva
- 16HowsonSubstituted forGestedeat 59'minutes
- 7LeadbitterBooked at 77mins
- 10BraithwaiteBooked at 41minsSubstituted forJohnsonat 80'minutes
- Oliver Langford
- Shots on Target
Second Half ends, Millwall 2, Middlesbrough 1.
James Meredith (Millwall) is shown the yellow card for a bad foul.
Adama Traoré (Middlesbrough) wins a free kick in the attacking half.
Foul by James Meredith (Millwall).
Foul by Adama Traoré (Middlesbrough).
James Meredith (Millwall) wins a free kick in the defensive half.
Jed Wallace (Millwall) is shown the yellow card for a bad foul.
Ben Gibson (Middlesbrough) wins a free kick in the defensive half.
Foul by Jed Wallace (Millwall).
Attempt blocked. Rudy Gestede (Middlesbrough) right footed shot from the centre of the box is blocked.
Substitution, Millwall. Tony Craig replaces Aiden O'Brien.
Foul by Adama Traoré (Middlesbrough).
Shaun Williams (Millwall) wins a free kick in the defensive half.
Foul by Ben Gibson (Middlesbrough).
Steve Morison (Millwall) wins a free kick in the attacking half.
Attempt saved. Fabio (Middlesbrough) header from the centre of the box is saved in the top right corner. Assisted by Adama Traoré with a cross.
Attempt saved. George Saville (Millwall) left footed shot from the right side of the box is saved in the bottom right corner. Assisted by Jed Wallace with a headed pass.
Attempt blocked. Steve Morison (Millwall) right footed shot from very close range is blocked.
Corner, Millwall. Conceded by Darren Randolph.