Match ends, Nottingham Forest 1, Millwall 0.
Nottingham Forest 1-0 Millwall
Barrie McKay's spectacular debut strike earned Nottingham Forest an opening-day win against a Millwall side who wasted numerous chances.
The Lions dominated, with Steve Morison crashing an effort against the bar and Aiden O'Brien and Lee Gregory missing glorious first-half opportunities.
But McKay's long-range shot put the Reds ahead at half-time.
And although Millwall's direct approach continued to pose problems, the Reds somehow held on for victory.
Forest's fifth first-day win in their past six seasons looked highly unlikely as last season's League One play-off winners created chance after chance before the break.
Morison should have scored with a close-range shot, O'Brien wasted three headed chances while Reds keeper Jordan Smith was in superb form, notably when he kept out Gregory's low shot.
After the equally outstanding McKay, one of three of six Forest summer signings to start, fired in the opener Forest continued to lead a charmed life.
Morison found the back of the net in the second period, but his strike was ruled out by referee Peter Bankes for a foul by Gregory on keeper Smith in the build-up, while substitute Fred Onyedinma missed the final chance of the evening in injury time.
Nottingham Forest manager Mark Warburton told BBC Radio Nottingham:
"Millwall were very good. They deserved something from the game.
"They were direct, they were effective. They won the first ball and created chances. Too many times we were loose in possession.
"To play like that and get three points, we are very relieved. We had some good points but were way below our normal level.
"Barrie McKay is a real talent. He is an outstanding player who can be anything he wants to be. He has real technical ability and class."
Millwall manager Neil Harris said:
"The ref said it was a foul from Gregory on the keeper. But I felt it was momentum. All we ask for is consistency as managers. Most people have said it is a goal, when they have seen it back. They cannot all be wrong.
"We dominated the game against a really good Forest side. The players executed the gameplan perfectly. We worked into good positions and created good chances. It was a top performance.
"You have to be clinical when you get your chances at this level. It was a good performance, but we have to be more ruthless.
"There were encouraging things to take from this. It is about how we react to this now."
- 17BreretonSubstituted forDowellat 59'minutes
- 11OsbornSubstituted forCohenat 59'minutes
- 9MurphySubstituted forMillsat 77'minutes
- 6WilliamsSubstituted forElliottat 83'minutes
- 23SavilleBooked at 89mins
- 22O'BrienSubstituted forOnyedinmaat 67'minutes
- 9GregorySubstituted forFergusonat 78'minutes
- Peter Bankes
- Shots on Target
Second Half ends, Nottingham Forest 1, Millwall 0.
Offside, Millwall. Jordan Archer tries a through ball, but Jake Cooper is caught offside.
Offside, Nottingham Forest. Kieran Dowell tries a through ball, but Barrie McKay is caught offside.
Attempt saved. Steve Morison (Millwall) header from the centre of the box is saved in the bottom right corner. Assisted by Shane Ferguson with a cross.
Attempt blocked. Tom Elliott (Millwall) header from the centre of the box is blocked. Assisted by James Meredith with a cross.
Attempt missed. Fred Onyedinma (Millwall) header from the right side of the six yard box is close, but misses to the right. Assisted by Jake Cooper with a headed pass.
Foul by Chris Cohen (Nottingham Forest).
Tom Elliott (Millwall) wins a free kick in the defensive half.
George Saville (Millwall) is shown the yellow card for a bad foul.
Delay over. They are ready to continue.
Delay in match Matt Mills (Nottingham Forest) because of an injury.
Attempt saved. Jed Wallace (Millwall) right footed shot from outside the box is saved in the top centre of the goal.
Attempt missed. Kieran Dowell (Nottingham Forest) left footed shot from outside the box is close, but misses to the right. Assisted by David Vaughan.
Substitution, Millwall. Tom Elliott replaces Shaun Williams.
Zach Clough (Nottingham Forest) wins a free kick in the attacking half.
Foul by George Saville (Millwall).
Offside, Nottingham Forest. Kieran Dowell tries a through ball, but Zach Clough is caught offside.
Corner, Nottingham Forest. Conceded by Jake Cooper.
Attempt blocked. Barrie McKay (Nottingham Forest) right footed shot from outside the box is blocked. Assisted by Armand Traore.
Armand Traore (Nottingham Forest) wins a free kick on the left wing.
Foul by Conor McLaughlin (Millwall).
Joe Worrall (Nottingham Forest) wins a free kick in the defensive half.
Foul by Jake Cooper (Millwall).
Corner, Millwall. Conceded by Jordan Smith.
Substitution, Millwall. Shane Ferguson replaces Lee Gregory.
Substitution, Nottingham Forest. Matt Mills replaces Daryl Murphy.
Offside, Nottingham Forest. Jordan Smith tries a through ball, but Daryl Murphy is caught offside.
Jordan Smith (Nottingham Forest) wins a free kick in the defensive half.
Foul by Lee Gregory (Millwall).
Attempt blocked. Zach Clough (Nottingham Forest) left footed shot from the centre of the box is blocked. Assisted by Kieran Dowell.
Corner, Millwall. Conceded by Barrie McKay.
Chris Cohen (Nottingham Forest) wins a free kick on the left wing.
Foul by Shaun Williams (Millwall).
Attempt missed. Lee Gregory (Millwall) left footed shot from the centre of the box is too high. Assisted by Steve Morison.
Substitution, Millwall. Fred Onyedinma replaces Aiden O'Brien.
Attempt missed. George Saville (Millwall) left footed shot from outside the box is too high from a direct free kick.
Foul by David Vaughan (Nottingham Forest).
George Saville (Millwall) wins a free kick in the attacking half.
Attempt blocked. Jed Wallace (Millwall) right footed shot from the centre of the box is blocked. Assisted by Lee Gregory.