Gary Cahill opened the scoring after just seven minutes to get Gareth Southgate's side off to a flying start, and captain Harry Kane then netted a deserved second towards the end of a dominant first-half display.
Nigeria pulled a goal back through Arsenal's Alex Iwobi in the opening stages of the second half, though, and England were forced to hold off a fightback from the Super Eagles to pick up the victory.
England made a sharp start to the match, but their first opening arrived in controversial fashion when the referee refused to stop play after two Nigerian players had clashed heads, instead awarding England a free kick in a good position seconds later.
Kieran Trippier's effort from that free kick was tipped past the post by Francis Uzoho, and from the resulting corner Cahill met Trippier's delivery with a thumping header which ripped into the top corner.
The goal may have stemmed from dubious circumstances, but it was no doubt deserved and England quickly set about pressing their advantage home, with another corner causing problems just five minutes later when John Stones almost capitalised on a handling error from Uzoho.
Uzoho was beaten moments later when Dele Alli - on the end of boos from the Nigerian fans due to his decision to represent England ahead of them - released Raheem Sterling down the left channel, only for Sterling to dink his finish past both the keeper and the far post.
The movement of Sterling and others was causing Nigeria all sorts of problems, though, and the Manchester City forward was heavily involved again when he linked up with Kane and Ashley Young before the latter was denied from point-blank range by a last-ditch block.
A second goal looked increasingly likely for the home side, and Jesse Lingard was the next to threaten just before the half-hour mark when he got on the end of a low cross into the box but was thwarted by Uzoho from close range.
Sterling then found himself in behind the defence again shortly afterwards, but this time his attempted cross into the middle was cut out before it could reach Trippier, who would have been left with a simple finish.
Southgate opted for Jordan Pickford in goal ahead of Jack Butland and Nick Pope, but it took until the 36th minute for the Everton keeper to be called into action for the first time, and even then it was a routine stop to deny Odion Ighalo's effort from a tight angle.
England were immediately back on the front foot with Alli bursting through the middle before laying the ball into the path of Sterling, who cut inside and fired his rising left-footed effort narrowly over the crossbar.
A second goal did finally arrive with six minutes remaining until half time, though, as Eric Dier won possession in midfield before giving the ball to Kane, who exchanged passes with Sterling and drilled a ferocious finish through Uzoho from the edge of the box.
Nigeria did have one final sight of goal on the stroke of half time when Victor Moses worked space to shoot, but again it was straightforward for Pickford and England went into the break with a comfortable lead.
Nigeria boss Gernot Rohr would have been demanding an improvement from his side with only two weeks to go before their first World Cup game, but even he may not have been expecting such a quick turnaround in fortunes.
The visitors came flying out of the bocks after half time and halved the deficit within two minutes of the restart when Ighalo's effort came back off the post and bounced to the feet of Arsenal's Iwobi, who swept the rebound home.
The goal was Nigeria's first ever against England, but they were not content to settle for just one and immediately started pushing for an equaliser as England suddenly found themselves under sustained pressure for the first time.
England's cause was not helped when Sterling capped off a week in which he hit the headlines for off-field reasons by picking up a deserved yellow card for diving, throwing himself to ground in an attempt to win a penalty from Uzoho.
Moses then fired an effort high and wide of the target as Nigeria looked to capitalise on their newfound control of the game, although England continued to pose a threat from set pieces and Dier perhaps should have done better with a glancing header from a corner shortly after the hour mark.
Former Chelsea midfielder John Obi Mikel tried his luck from range and forced Pickford into a save with just over 20 minutes remaining, but despite Nigeria's improvement in the second half they were largely limited to such speculative efforts.
Indeed, it was England that came closest to adding the game's fourth goal in the closing stages when substitute Marcus Rashford first dragged an effort wide and then sent a looping header over the crossbar from Fabian Delph's deep cross.
Southgate's side held on for the win, but the nature of the second-half performance - when Nigeria mirrored England's style and got the better of them for long spells - still leaves plenty of questions over the team ahead of their final World Cup warm-up game, which takes place at Elland Road against Costa Rica on Thursday night.
England - who are now unbeaten in their last nine matches - will get their World Cup campaign underway against Tunisia on June 18, two days after Nigeria have begun their own tournament against Croatia.
The Super Eagles, who will also face Argentina and Iceland in the group stages, must first cut their squad down to 23 players on Monday before facing Czech Republic in Austria in their final warm-up game on Wednesday.
ENGLAND (3-1-4-2): Pickford; Walker, Stones, Cahill; Dier; Trippier, Lingard (Loftus-Cheek 67'), Alli (Delph 82'), Young (Rose 68'); Kane (Welbeck 73'), Sterling (Rashford 73')
NIGERIA (4-2-3-1): Uzoho; Shehu (Ebuehi 46'), Troost-Ekong, Balogun (Omeruo 46'), Idowu; Onazi (Etebo 46'), Obi (Ogu 46'); Iwobi, Mikel, Moses (Musa 63'); Ighalo (Iheanacho 77')