Members of Unite want an end to salary differences between firms that can see pay differ from £17,000 to £25,000.
Unite said the discrepancy was due to the number of tenders available and companies submitting the lowest bids.
Transport for London, which oversees the city's bus services, said it was down to the individual companies, many of whom have declined to comment.
Unite's general secretary Len McCluskey said: "With decentralisation and the sell-off of routes, London's bus drivers' wages have taken a hit and vary drastically from company to company.
"It is madness - there ought to be a common, decent rate for the job."
Unite said about 400 bus drivers had marched from Bressenden Place to Old Palace Yard in Westminster.
The union said an "explosion in competition" had led to a "squeeze on the pay, terms and conditions of all bus workers".
John Murphy, from Unite, said: "When you consider what the job is - there's shift work and bad backs and buses take everyone to the train stations and the middle of London -  we're quite responsible for keeping this city running.
"Another downside is if you can have employees in on £3 less, that puts those who are paid the £3 above in jeopardy, who are the bosses going to want?"
He said he march had been a "success" but there was "still a way to go" to achieve the union's aims.
Mr Murphy said the average wage for a London Underground driver was about £40,000 and therefore a "reasonable" wage for a bus driver should be between £28,000 and £30,000.
Caroline Pidgeon, leader of the London Assembly Liberal Democrats and chair of the assembly's transport committee, said: "It is a strange anomaly that while tube drivers receive the same pay across London but the terms and conditions of bus drivers vary enormously.
"If we expect a uniform level of service from bus drivers there is a strong case that they should at least be paid on a consistent basis across the capital."
Hundreds of London's bus drivers have taken part in a protest march to demand collective bargaining.