Millwall have won to promotion to the Championship after Paul Robinson’s first half winner sunk Swindon in the League One play-off final at Wembley.

Robinson struck the only goal of the game six minutes before the interval to ensure there was no repeat of last year’s heartbreaking final defeat at the hands of Scunthorpe.

It was no less than Kenny Jackett’s side deserved in a game which they dominated from start to finish and the Lions will now ply their trade in English football’s second tier next year for the first time in four years.

The first attack came on three minutes when Alan Sheehan’s cross came into the Millwall box but it wasn’t able to pick out a team-mate and went harmlessly behind for a goal-kick.

Similarly, Charlie Austin was just unable to get on the end of Jon-Paul McGovern’s delivery three minutes later.

David Forde dealt comfortably with Danny Ward’s cross moments later before David Lucas did well at the other end to tip over Neil Harris’ shot from an acute angle.

Harris just failed to connect with Steve Morison’s 10th minute flick on as the Lions began to pose more of an attacking threat.

Morison chased down a loose ball after Scott Cuthbert’s back pass fell short of Lucas but the keeper’s quick-thinking reaction in rushing off his line prevented the Millwall striker from getting in a decent shot on target.

The Lions came close again on 17 minutes when Morison’s delightful chip went agonisingly over the bar and then Danny Schofield fired wide from a decent position.

Harris scuffed a shot from outside of the area harmlessly wide, much to the relief of Swindon who were living dangerously at this point.

They were awarded a free-kick in a dangerous position midway through the half when Shaun Batt stopped Sheehan in his tracks.

However, the delivery from McGovern was poor and the free-kick was easily headed away by the Millwall defence.

Batt shot straight at Lucas as the Lions went back on the attack, while Sheehan’s free-kick from 30-yards evaded everyone before sailing just wide of Forde’s post.

Austin’s 28th minute shot on the turn from 30 yards went well over the bar but Millwall thought they had taken the lead 60 seconds later when Kevin Amankwaah headed into his own net from Batt’s cross.

However, the linesman had spotted Liam Trotter in an offside position and the effort was ruled out.

Lucas came a long way out of his box to deny Morison and then Sheehan fired just over from 20-yards with Forde at full stretch.

Tony Craig drilled a shot wide of the post from long range but Millwall finally got their noses in front six minutes from the break when they were awarded a couple of corners in quick succession.

The second from Schofield came off the head of Cuthbert and into the path of Robinson, who simply couldn’t miss from four yards out.

Harris escaped caution when he went in a bit late on Lucas, although the Millwall striker would argue he was going for a 50-50 ball and the referee clearly agreed.

The Lions were forced into a substation on 44 minutes when Craig hobbled off to be replaced by Andy Frampton.

Nevertheless, it was Millwall went in at the interval with their noses in front and Swindon could have few complaints on the balance of play.

The Robins were awarded a free-kick just outside of the area within a minute of the restart after Forde handled outside his box but Sheehan’s delivery was easily dealt with by the Lions defence.

Forde pulled off a facile save from Jonathan Douglas’ shot moments later, an effort which lacked any power or conviction.

Cuthbert did well to clear at the second attempt as Batt bore down on goal, while Barron was equally impressive at the other end to deny Austin a shot on target as the second half began brightly.

Morison got on the end of Trotter’s long ball and won a corner off Cuthbert, with the Millwall striker then seeing a header cleared by Sheehan, although it was probably going just wide.

Schofield’s cross-shot was pushed away by Lucas and then a Morison shot was blocked as the Lions came close to adding a second.

Austin’s shot on the turn was deflected behind by Robinson for a corner on the hour.

That came to nothing but they came close from another corner two minutes later when Lescinal Jean-Francois’ header forced a save from Forde.

Morison shook off the attentions of Cuthbert on 64 minutes but his low shot was placed straight at Lucas.

Swindon boss Danny Wilson made his first change midway through the second half when Stephen Darby came on to replace Sheehan, while Millwall introduced Chris Hackett for Batt in the 70th minute.

Austin missed an absolute sitter two minutes later when Robinson’s attempted clearance landed straight in his path to put him clean through but he inexplicably opted to place his shot wide.

McGovern was replaced by Alan O’Brien and then Morison saw a 20-yard volley just go over the bar and then Harris placed a shot wide after Millwall launched a quick counter attack through Trotter.

Cuthbert cleared off the line after Lucas made a complete hash of a free-kick whipped into the box.

Billy Paynter, who had done nothing for the entire game, was substituted by Vincent Pericard before Morison fired just over again.

Morison should have passed to an unmarked Harris moments later instead of opting for a shot which was saved by Lucas.

Amakwaah made an ambitious claim for a penalty on 87th minutes after hitting the deck despite their being no contact whatsoever from Frampton, while Ward shot wide as Swindon began to panic with time fast running out.

Four minutes of stoppage time were signalled and they came agonisingly close right at the death when Austin’s deflected shot went only inches wide for a corner.

But the Lions survived the scare and deservedly sealed their place in the Championship as the party began inside the stadium.

Millwall: Forde, Barron, Robinson, Ward, Craig (Frampton 44), Schofield, Trotter, Abdou, Batt (Hackett 70), Morison, Harris. Subs: Sullivan, Alexander, Fuseini, Laird, Obika. Att: 73,108.