Man of the moment Kieffer Moore came off the bench to score the only goal as AFC Bournemouth brought the curtain down on a memorable season with a 1-0 win over Millwall.
Moore, whose late goal against Nottingham Forest in midweek sealed promotion to the Premier League, netted nine minutes from time to earn the Cherries victory in their final game.
It was his fourth goal in as many games and ensured Scott Parker’s team would finish six points clear in the second automatic promotion berth.
Mark Travers’s 20th clean sheet in the league saw him win the Championship golden glove with Dom Solanke finishing the campaign as the Cherries’ leading goalscorer with 30 in all competitions.
Gavin Kilkenny, Emi Marcondes and Robbie Brady were named in the starting line-up as head coach Parker made three changes following the promotion-clinching 1-0 win over Nottingham Forest.
Kilkenny and Brady were handed their first starts in the Championship since December, while Marcondes featured for the first time since coming off the bench against Peterborough in March.
They replaced Jefferson Lerma, who was ruled out due to a hamstring injury, and Phil Billing and Ryan Christie, who were named among the Cherries substitutes.
Jaidon Anthony’s inclusion saw the frontman make his 50th league appearance for the Cherries, the 22-year-old reaching the milestone just 17 months after making his debut.
The Cherries successfully defended free kicks from George Saville and Danny McNamara as Millwall made the running in the early stages.
A promising move started by Brady’s pass to Adam Smith ended with Anthony poking his shot past the post after Dom Solanke had teed him up.
Kilkenny set up a shooting chance for countryman Brady, the Republic of Ireland international firing high over the crossbar.
Marcondes nipped behind the Lions defence to control Smith’s superb through ball, only to see his effort strike goalkeeper Bartosz Bialkowski on the chest.
Kilkenny and Solanke both had chances charged down by defenders with Marcondes and Anthony also thwarted by last-ditch blocks.
Saville’s deep centre was met by Shaun Hutchinson at the far post, the Lions skipper’s header sailing over the top of Mark Travers’s crossbar.
As chances continued to come for the hosts, Solanke’s left-footed effort from the edge of the 18-yard box flashed past the upright.
Lloyd Kelly did well to cut out Oliver Burke’s cross at the start of the second half with former Cherries striker Benik Afobe looking to pounce at the far post.
Lewis Cook’s interception set up a counter attack with Marcondes finding Solanke whose resultant shot was again blocked by a defender.
Jordan Zemura’s electrifying run took him to the byline, only for his low cross to eluded Solanke as the striker stretched to attempt to meet it.
The Cherries thought they had opened the scoring in the 62nd minute when Marcondes found the back of the net.
But Zemura, again the architect of the opportunity, was deemed to have been in an offside position when he hurdled the ball in front of Lions goalkeeper Bialkowski.
Travers got behind Saville’s shot through a crowd of players before Kelly’s timely tackle prevented Afobe from taking aim.
Moore made the breakthrough nine minutes from time, the goal owing much to the quick thinking of substitute Billing.
The Danish international’s quickly-taken throw put Moore in the clear before the big striker headed into the 18-yard box and made no mistake, drilling an unstoppable shot past Bialkowski.
As Millwall went in search of an immediate response, Burke raced through and blazed over the crossbar before Siriki Dembele’s shot from a tight angle was saved by Bialkowski.
A frantic scramble, caused by Smith's driven cross into the danger area, saw Billing's shot blocked before Anthony's follow-up effort appeared to strike a defender's arm but referee Andre Marriner thought otherwise.
AFC Bournemouth: Travers, Smith, Phillips, Kelly, Zemura, Cook (Billing, 77), Kilkenny, Marcondes (Moore, 69), Brady (Dembele, 60), Anthony, Solanke.
Unused subs: Mepham, Hill, Christie, Woodman (g/k).
Millwall: Bialkowski, Leonard (Bradshaw, 74), Hutchinson, Cooper, McNamara, Mitchell, Saville, M Wallace (Kieftenbeld, h/t), Burke, Afobe, Bennett (J Wallace, 58).
Unused subs: Pearce, Evans, Burey, Long (g/k).
Booked: Kieftenbeld, Saville.
Referee: Andre Marriner.