Sobyanin won 51.32 per cent of the vote and Navalny 27.27 per cent, the Moscow election commission said, in a count based on 99.6 per cent of polling stations reporting.
Navalny has already expressed doubt over the validity of the results, claiming to have pushed Sobyanin to a second round and warning of street protests.
In the other key battle in nationwide local elections Sunday, anti-drugs campaigner and opposition activist Yevgeny Roizman defeated the candidate of the ruling United Russia Party in the battle for mayor of Russia's fourth largest city Yekaterinburg.
Unlike in Moscow, there was no possibility of a second round, meaning the candidate with the most votes becomes mayor.