The 28-year-old MTN-Qhubeka rider maintained his 13-second lead over Team Sky's Wouter Poels on Sunday's 14-lap final stage around central London.
Team Sky's Elia Viviani was awarded the stage win after Andre Greipel, who crossed the line first, was penalised.
Owain Doull, riding for Team Wiggins, was the highest placed Briton in third.
The Welshman finished 10th on the stage but picked up bonus seconds in the intermediate sprint to leapfrog Rasmus Guldhammer to end the race 42 seconds behind Boasson Hagen and also win the points classification.
Germany's Griepel beat Viviani by milimetres in Saturday's penultimate stage and was again first over the finish line on Sunday.
However, the Lotto-Soudal rider was adjudged to have impeded Viviani in the sprint for the line and was relegated to the back of the bunch by race officials.
"I didn't see Viviani coming," said Greipel.
"Everybody was on the limit on the final corner. I didn't do anything for purpose that's for sure. That's sprinting."
After winning his third stage of the race, Italian Viviani, who crossed the finish line with his hand in the air in complaint, said: "He came across a little bit and that edged me towards the barriers.
"I'm disappointed because it is better to win without this but we won in London and that is the main thing."
Stage eight result:
1. Elia Viviani (Ita/Team Sky) 1hr 50mins 16secs,
2.  Juan Jose Lobato Del Valle (Esp/Movistar) same time
3. Matteo Trentin (Ita/Etixx-Quickstep)
4. Edvald Boasson Hagen (Nor/MTN-Qhubeka)
5. Jens Debusschere (Bel/Lotto-Soudal)
6. Sondre Holst Enger (Nor/IAM)
7. Mark Renshaw (Aus/Etixx-Quickstep)
8. Graham Briggs (GB/JLT Condor)
9. Ruben Zepuntke (Ger/Cannondale-Garmin)
10. Owain Doull (GB/Team Wiggins)
General classification:
1. Edvald Boasson Hagen (Nor/MTN-Qhubeka) 34hrs 52mins 52secs,
2. Wouter Poels (Ned/Team Sky) +13 secs,
3. Owain Doull (GB/Team Wiggins) +42secs
4. Rasmus Guldhammer (Den/Cult Energy Pro Cycling) +43secs
5. Zdenek Stybar (Cze/Etixx-Quick-Step) +51secs
6. Ruben Fernandez (Spa/Movistar) same time
7. Steven Kruijswijk (Ned/Team LottoNL-Jumbo)
8. Dylan van Baarle (Ned/Cannondale-Garmin) +53secs
9. Chris Anker Sorensen (Den/Tinkoff-Saxo) +59secs
10. Xandro Meurisse (Bel/An Post - Chainreaction) +1:02
Selected others:
18. Peter Kennaugh (GB/Team Sky) +2:51
24. Ian Stannard (GB/Team Sky) +38:36
87. Bradley Wiggins (GB/Team WIGGINS) +1.31:03
Edvald Boasson Hagen became the first rider to win the Tour of Britain twice since its return to the professional cycling calendar in 2004.