
Femi Azeez put Millwall ahead with his 10th goal of the season
Millwall ensured a third-placed finish in the Championship after beating relegated Oxford United 2-0 in their final day clash.
The Londoners' hopes of automatic promotion to the Premier League rested on Ipswich Town dropping points at home to Queens Park Rangers - but their 3-0 victory meant a play-off place for Alex Neil's side.
After wave after wave of pressure the hosts finally took a deserved first-half lead when Femi Azeez blasted past Jamie Cumming at his near post.
The winger hit the upright soon after, but made no mistake early in the second half as he fired in at the far post from close range.
Millwall dominated much of the game and looked comfortable apart from a late Mark Harris header that was well saved as they now prepare for a two-legged play-off semi final against sixth-placed Hull City.
Millwall had the better of the opening quarter of the game as Thierno Ballo twice headed off target while Zak Sturge had an effort deflected over the bar as Will Lankshear blazed over with Oxford's only early chance.
The Lions continued to pressurise Oxford - winning nine corners in the first 30 minutes - as the visitors were forced into a number of desperate clearances.
The pressure finally told when they broke down the left before finding Mihailo Ivanovic in a central area and the striker played in Azeez who got past his marker and crashed home the opener.
Azeez hit the post four minutes later with a cross from a short corner from the right that evaded everyone in the box.
But the winger doubled the lead early in the second half - Barry Bannan superbly twisted and turned on the left before laying on a perfect pass to Ballo, whose low cross from the byline was converted by the unmarked Azeez.
The second goal relaxed the hosts as Casper De Norre saw a 52nd-minute long-range effort fly just over and Camiel Neghli and Ballo had good chances soon after.
Millwall continued to boss the game as Ryan Leonard had an effort well-saved by Jamie Cumming before Luke Cundle shot straight at the goalkeeper.
Oxford had their best opportunity with seven minutes to go as Aidomo Emakhu's floated ball to the back post saw Harris force a close-range save from Anthony Patterson.
Ivanovic had a stoppage-time free-kick from the edge of the box deflected over as Millwall ensured their best league placing since they finished third in the second tier in 1994.
'We still have a lot to play for' - reaction
Millwall head coach Alex Neil told BBC Radio London:
"I thought we deserved to win the game, I thought we were comfortable - my only frustration is we haven't scored more in the first half.
"But when you can hear the fans shouting it's 2-0 after 10 minutes, we've just got to remain focused and do our bit because you never know what's going to happen.
"Football lasts 90-odd minutes and we had to make sure that we didn't slip up and we got the job done.
"We did that, so now we're in the playoffs with an unbelievable season but there's still a lot to play for."
Oxford United head coach Matt Bloomfield told BBC Radio Oxford:
"I think we were up against a very, very good team who showed in every element of their performance why they are where they are and why they have the chance of getting into the Premier League.
"I thought we were not at our best, but considering the surroundings of the game it was always going to be a difficult game for us and that proved to be true.
"Our supporters have been incredible. They are amazing group, we can all see how much pride they take in their football club, our guys are amazing, so a massive thank you to them.
"The players care a lot, they've given us everything I believe that over the last four months since I've been in the building, we're so terribly disappointed to come up short, but I don't think that's through a lack of effort.
"I think everyone's given it everything they've got and unfortunately for us we've not quite had enough to stay in the division."
Player of the match
After the opportunity to rate players has closed, the score displayed represents the average from all the submissions by BBC Sport users.