Millwall secured their Championship status for another season by beating Bournemouth through a Martyn Woolford goal as Doncaster were relegated.

The former Bristol City and Scunthorpe midfielder glanced a header past Lee Camp midway through the first half.

Stefan Maierhofer also went close for the home side before both Steve Morison and Owen Garvan hit the woodwork.

Yann Kermorgant and Shaun MacDonald had chances to equalise but found David Forde in excellent form.

It should have been all wrapped up way before the final whistle for Ian Holloway's side but second-half substitute Simeon Jackson fired wide when he had a open goal to aim for.

Holloway's impact

Since taking charge on 7 January Ian Holloway has seen his side pick up 26 points from 22 games, more than half of their total of 48.

Despite securing four draws and three wins from their previous seven games, Millwall still needed another victory to ensure survival.

And without a home win since 18 January and up against a Bournemouth side who had lost only one of their past nine games, that was no foregone conclusion.

The Lions were ready for the battle, though, and Woolford had two early chances to give them the lead, first firing just wide before Camp saved well down low to his left.

Kermorgant had the first chance for the Cherries, whose play-off bid had only recently foundered, but his free-kick was tipped round the post by Forde.

In the main though it was the home side creating the chances, Maierhofer seeing a header blocked before Morison put the rebound wide.

The former Norwich striker also hit the post after an excellent chip over Camp.

The goal was no more than Millwall deserved, therefore, Woolford glancing a superb cross from Garvan beyond the despairing dive of the former Nottingham Forest keeper.

Bournemouth started the second half brightly, MacDonald twice going close, but could not find the goals to end their season on a high.

The result means Millwall finished 19th, four points clear of the relegation zone, while Bournemouth slipped to 10th, six points off the top six.

Millwall boss Ian Holloway: "I'm so chuffed for everyone associated with this great football club.

"It's the greatest achievement of my managerial career. We've got a proper Millwall team now.

"Everybody's rallied, everyone's been honest and hard-working. We could have capitulated but it's typical of this place, we've grabbed it by the bootstraps.

"Now I can't wait to put a plan in place with the chairman and the board. It's going to be a big summer."

Bournemouth boss Eddie Howe: "I thought it was a poor-quality game from both sides, but under the circumstances that was understandable.

"We got caught up in the atmosphere and didn't play to our normal level. We had a spell on top during the second half but found their keeper in good form.

"But it's been a very good season, we have improved from the first half of the season and I've been impressed with how the team has developed.

"If we can keep this group together and maybe add to it, we will be stronger next season."

Lineup, Bookings (5) & Substitutions (6)

Millwall

  • 01 Forde
  • 44 Edwards
  • 28 Malone (Fredericks - 86' )
  • 17 Williams
  • 02 Dunne
  • 16 Beevers Booked (Robinson - 34' )
  • 09 Morison
  • 10 Bailey Booked
  • 42 Maierhofer (Jackson - 64' )
  • 29 Garvan
  • 11 Woolford Booked

Substitutes

  • 05 Robinson
  • 08 Easter
  • 14 Fredericks
  • 19 Jackson
  • 26 Abdou
  • 27 McDonald
  • 43 Bywater

AFC Bournemouth

  • 42 Camp
  • 15 Smith Booked (Francis - 45' )
  • 11 Daniels
  • 04 Surman
  • 05 Elphick
  • 03 Cook
  • 30 Ritchie Booked
  • 32 O'Kane (MacDonald - 45' )
  • 18 Kermorgant
  • 28 Rantie
  • 20 Fraser (Pitman - 72' )

Substitutes

  • 01 Allsop
  • 02 Francis
  • 07 Pugh
  • 10 Pitman
  • 14 Harte
  • 16 MacDonald
  • 21 Coulibaly
Ref: Michael Naylor
Att: 15,779

Match Stats

Shots

22 12

On target

5 6

Corners

10 10

Fouls

18 11

Live Text Commentary

Full time

Full Time Match ends, Millwall 1, Bournemouth 0.

90:00 +3:08 Full time

Full Time Second Half ends, Millwall 1, Bournemouth 0.

90:00 +2:34

Attempt saved. Brett Pitman (Bournemouth) header from the centre of the box is saved in the centre of the goal. Assisted by Yann Kermorgant with a cross.

90:00 +1:02

Corner, Millwall. Conceded by Tommy Elphick.

90:00 +0:20

Attempt missed. Brett Pitman (Bournemouth) left footed shot from more than 40 yards on the right wing misses to the left.

89:19

Offside, Bournemouth. Tokelo Rantie tries a through ball, but Yann Kermorgant is caught offside.

85:34 Substitution

Substitution Substitution, Millwall. Ryan Fredericks replaces Scott Malone.

84:28

Attempt saved. Tokelo Rantie (Bournemouth) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Brett Pitman.

81:34

Corner, Millwall. Conceded by Steve Cook.

80:55 Booking

Booking Matt Ritchie (Bournemouth) is shown the yellow card for a bad foul.

80:40

Foul by Matt Ritchie (Bournemouth).

80:40

Simeon Jackson (Millwall) wins a free kick in the attacking half.

80:00

Corner, Bournemouth. Conceded by David Forde.

79:58

Attempt saved. Andrew Surman (Bournemouth) left footed shot from the left side of the box is saved in the bottom left corner. Assisted by Brett Pitman.

77:00

Tokelo Rantie (Bournemouth) wins a free kick on the right wing.

77:00

Foul by Alan Dunne (Millwall).

76:34

Attempt missed. Simeon Jackson (Millwall) right footed shot from the centre of the box misses to the left.

76:30

Attempt blocked. Simeon Jackson (Millwall) right footed shot from outside the box is blocked. Assisted by Owen Garvan.

75:05

Foul by Yann Kermorgant (Bournemouth).

75:05

Nicky Bailey (Millwall) wins a free kick in the defensive half.

73:33

Yann Kermorgant (Bournemouth) wins a free kick in the attacking half.

73:33

Foul by Shaun Williams (Millwall).

73:09

Attempt blocked. Martyn Woolford (Millwall) left footed shot from outside the box is blocked.

72:47

Attempt blocked. Owen Garvan (Millwall) left footed shot from outside the box is blocked.

72:15

Corner, Millwall. Conceded by Tommy Elphick.

71:34 Substitution

Substitution Substitution, Bournemouth. Brett Pitman replaces Ryan Fraser.

71:02

Yann Kermorgant (Bournemouth) wins a free kick in the defensive half.

71:02

Foul by Paul Robinson (Millwall).

70:27

Corner, Millwall. Conceded by Lee Camp.

70:26

Attempt saved. Shaun Williams (Millwall) left footed shot from outside the box is saved in the top left corner. Assisted by Simeon Jackson.

69:34

Corner, Millwall. Conceded by Lee Camp.

68:25

Charlie Daniels (Bournemouth) wins a free kick in the defensive half.

68:25

Foul by Steve Morison (Millwall).

66:49

Attempt missed. Simeon Jackson (Millwall) right footed shot from the centre of the box is close, but misses to the right.

65:14

Ryan Fraser (Bournemouth) wins a free kick in the attacking half.

65:14

Foul by Nicky Bailey (Millwall).

63:41 Substitution

Substitution Substitution, Millwall. Simeon Jackson replaces Stefan Maierhofer.

62:39

Corner, Bournemouth. Conceded by Alan Dunne.

61:20

Attempt saved. Shaun MacDonald (Bournemouth) header from the centre of the box is saved in the bottom left corner. Assisted by Steve Cook with a cross.

59:31

Attempt missed. Andrew Surman (Bournemouth) left footed shot from outside the box misses to the right.

58:44

Corner, Bournemouth. Conceded by Paul Robinson.

55:06

Corner, Millwall. Conceded by Charlie Daniels.

51:34

Ryan Fraser (Bournemouth) wins a free kick in the defensive half.

51:34

Foul by Shaun Williams (Millwall).

49:43

Corner, Millwall. Conceded by Simon Francis.

49:09

Hand ball by Tokelo Rantie (Bournemouth).

47:01

Corner, Bournemouth. Conceded by Paul Robinson.

46:58

Attempt blocked. Andrew Surman (Bournemouth) left footed shot from outside the box is blocked. Assisted by Yann Kermorgant with a headed pass.

46:41

Simon Francis (Bournemouth) wins a free kick on the right wing.

46:41

Foul by Stefan Maierhofer (Millwall).

45:00

Second Half begins Millwall 1, Bournemouth 0.

45:00 Substitution

Substitution Substitution, Bournemouth. Simon Francis replaces Adam Smith.

45:00 Substitution

Substitution Substitution, Bournemouth. Shaun MacDonald replaces Eunan O'Kane.

45:00 +2:25 Half time

Half Time First Half ends, Millwall 1, Bournemouth 0.

45:00 +2:13

Attempt blocked. Ryan Fraser (Bournemouth) right footed shot from outside the box is blocked. Assisted by Andrew Surman.

45:00 +1:50 Booking

Booking Martyn Woolford (Millwall) is shown the yellow card for a bad foul.

45:00 +1:20

Ryan Fraser (Bournemouth) wins a free kick on the left wing.

45:00 +1:20

Foul by Martyn Woolford (Millwall).

45:00 +0:59

Attempt saved. Paul Robinson (Millwall) header from the centre of the box is saved in the top centre of the goal. Assisted by Scott Malone with a cross.

45:00 +0:22 Booking

Booking Adam Smith (Bournemouth) is shown the yellow card for a bad foul.

45:00 +0:16

Foul by Adam Smith (Bournemouth).

45:00 +0:16

Alan Dunne (Millwall) wins a free kick on the left wing.

44:16

Adam Smith (Bournemouth) wins a free kick on the right wing.

44:16

Foul by Steve Morison (Millwall).

43:42 Booking

Booking Nicky Bailey (Millwall) is shown the yellow card for a bad foul.

43:30

Adam Smith (Bournemouth) wins a free kick in the defensive half.

43:30

Foul by Nicky Bailey (Millwall).

41:08

Adam Smith (Bournemouth) wins a free kick in the defensive half.

41:08

Foul by Stefan Maierhofer (Millwall).

39:21

Corner, Millwall. Conceded by Adam Smith.

38:24

Tokelo Rantie (Bournemouth) wins a free kick in the attacking half.

38:24

Foul by Alan Dunne (Millwall).

37:35

Foul by Yann Kermorgant (Bournemouth).

37:35

Alan Dunne (Millwall) wins a free kick in the defensive half.

35:41

Attempt missed. Stefan Maierhofer (Millwall) header from the centre of the box misses to the left. Assisted by Martyn Woolford with a cross.

33:50 Substitution

Substitution Substitution, Millwall. Paul Robinson replaces Mark Beevers because of an injury.

31:21

Adam Smith (Bournemouth) wins a free kick in the defensive half.

31:21

Foul by Steve Morison (Millwall).

29:58

Yann Kermorgant (Bournemouth) wins a free kick in the attacking half.

29:58

Foul by Alan Dunne (Millwall).

28:39 Goal scored

Goal! Goal! Millwall 1, Bournemouth 0. Martyn Woolford (Millwall) header from the centre of the box to the top right corner. Assisted by Owen Garvan with a cross.

27:43

Attempt missed. Adam Smith (Bournemouth) left footed shot from outside the box is close, but misses to the left. Assisted by Andrew Surman with a cross following a corner.

27:09

Corner, Bournemouth. Conceded by David Forde.

27:08

Attempt saved. Tokelo Rantie (Bournemouth) right footed shot from outside the box is saved in the bottom left corner. Assisted by Yann Kermorgant with a headed pass.

25:56

Foul by Matt Ritchie (Bournemouth).

25:56

Scott Malone (Millwall) wins a free kick in the defensive half.

23:48

Offside, Millwall. Owen Garvan tries a through ball, but Stefan Maierhofer is caught offside.

23:43

Attempt saved. Shaun Williams (Millwall) left footed shot from outside the box is saved in the centre of the goal. Assisted by Martyn Woolford.

22:59

Corner, Bournemouth. Conceded by Scott Malone.

22:07

Foul by Yann Kermorgant (Bournemouth).

22:07

Alan Dunne (Millwall) wins a free kick in the defensive half.

21:24

Stefan Maierhofer (Millwall) hits the bar with a right footed shot from the centre of the box. Assisted by Steve Morison with a headed pass.

20:56

Foul by Tokelo Rantie (Bournemouth).

20:56

Mark Beevers (Millwall) wins a free kick in the defensive half.

18:22

Attempt missed. Steve Morison (Millwall) right footed shot from very close range is too high following a corner.

18:16

Attempt blocked. Owen Garvan (Millwall) right footed shot from the left side of the six yard box is blocked.

18:16

Attempt missed. Stefan Maierhofer (Millwall) header from the right side of the box misses to the left. Assisted by Scott Malone with a cross following a corner.

17:44

Corner, Millwall. Conceded by Yann Kermorgant.

16:19

Delay over. They are ready to continue.

15:24

Delay in match Steve Cook (Bournemouth) because of an injury.

14:00

Foul by Andrew Surman (Bournemouth).

14:00

Martyn Woolford (Millwall) wins a free kick in the attacking half.

13:43

Andrew Surman (Bournemouth) wins a free kick in the defensive half.

13:43

Foul by Stefan Maierhofer (Millwall).

12:35

Corner, Bournemouth. Conceded by Steve Morison.

12:06

Corner, Bournemouth. Conceded by David Forde.

12:03

Attempt saved. Yann Kermorgant (Bournemouth) right footed shot from outside the box is saved in the bottom right corner.

11:14 Booking

Booking Mark Beevers (Millwall) is shown the yellow card for a bad foul.

10:55

Ryan Fraser (Bournemouth) wins a free kick in the attacking half.

10:55

Foul by Mark Beevers (Millwall).

10:27

Attempt missed. Steve Morison (Millwall) right footed shot from outside the box misses to the left.

8:17

Corner, Bournemouth. Conceded by Alan Dunne.

6:34

Attempt missed. Stefan Maierhofer (Millwall) header from the left side of the box misses to the left. Assisted by Owen Garvan with a cross following a corner.

6:12

Corner, Millwall. Conceded by Charlie Daniels.

6:03

Attempt saved. Martyn Woolford (Millwall) right footed shot from the right side of the box is saved in the bottom right corner.

5:59

Attempt blocked. Steve Morison (Millwall) left footed shot from the centre of the box is blocked. Assisted by Stefan Maierhofer with a headed pass.

4:48

Attempt missed. Martyn Woolford (Millwall) left footed shot from outside the box misses to the right. Assisted by Steve Morison.

3:53

Foul by Eunan O'Kane (Bournemouth).

3:53

Shaun Williams (Millwall) wins a free kick in the defensive half.

3:38

Foul by Tokelo Rantie (Bournemouth).

3:38

Mark Beevers (Millwall) wins a free kick in the defensive half.

2:57

Attempt missed. Adam Smith (Bournemouth) right footed shot from more than 40 yards on the right wing misses to the left.

2:41

Attempt blocked. Scott Malone (Millwall) left footed shot from outside the box is blocked.

1:14

Corner, Bournemouth. Conceded by Alan Dunne.

0:49

Andrew Surman (Bournemouth) wins a free kick in the defensive half.

0:49

Foul by Shaun Williams (Millwall).

0:12

Foul by Nicky Bailey (Millwall).

0:12

Yann Kermorgant (Bournemouth) wins a free kick in the attacking half.

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers