He pressed ahead with the move - unpopular with some Liberal Democrats - after revealing that an official report by the taxman had found it was raising "next to nothing".
He also reduced proposed cuts to child benefits paid to the better off.
But he increased the threshold at which everyone starts paying tax to £9,205, claiming millions of working people would be £220 a year better off as a result.
The cut in the top rate of income tax to 45p in the pound for all income over £150,000 from April 2013 was countered with a hike in stamp duty on homes worth over £2 million from 5% to 7%.
The Chancellor also confirmed a crackdown on various tax loopholes used by the rich including a 15% stamp duty rate on homes held through companies.
Overall, Mr Osborne claimed his measures would raise five times more from the wealthy than the 50% top rate introduced by Labour. But Labour leader Ed Miliband said the Budget meant millions would pay more while millionaires paid less, saying: "It is a millionaires' budget that squeezes the middle."
The Chancellor has been besieged with calls from the motoring lobby for a cut in fuel duty as forecourt prices have soared to record highs. But Mr Osborne ignored them, declaring: "I do not propose to make any further changes to the fuel duty plans already set out."
He also dealt a blow to smokers saying that duty on all tobacco products would rise by 5% above inflation - slapping 37p on a packet of cigarettes from 6pm.
The Chancellor also signalled that millions of workers may have to work longer before they can retire. Mr Osborne told MPs: "I can confirm today that there will be an automatic review of the state pension age to ensure it keeps pace with increases in longevity."