The Russian president announced the action during a televised address early on Thursday morning, saying the move was a response to threats from Ukraine.
The sound of distant blasts were picked up in a live broadcast from US outlet CNN, causing reporter Matthew Chance to put on a flak jacket.
Gunfire rattled near the capital’s main airport, the Interfax news agency said, and sirens were heard over the city.
Explosions have also been heard in the southern Ukrainian port city of Odessa, and in the north-eastern city of Kharkiv.
Media reported that military command centres in Kiev and Kharkiv had been struck by missiles while Russian troops had landed in Odessa and Mariupol.
A Reuters witness later heard three loud blasts in Mariupol.
The Ukrainian Minister of Foreign Affairs, Dmytro Kuleba, said that Russia has launched a “full-scale invasion of Ukraine”.
Mr Kuleba said that Ukraine would defend itself against the Russian aggression “and will win”.
“Putin has just launched a full-scale invasion of Ukraine. Peaceful Ukrainian cities are under strikes.
“This is a war of aggression. Ukraine will defend itself and will win.
The world can and must stop Putin. The time to act is now.”
Ukraine’s president, Volodymyr Zelenskyy, declared martial law, urging citizens not to panic as Russia launches military strikes.
Meanwhile, Ukraine’s ambassador at the United Nations has told the Security Council that Russian President Vladimir Putin has “declared war on Ukraine”.
He also pressed his Russian counterpart to state that Russia will not shell and bomb Ukrainian cities.
Ukrainian ambassador Sergiy Kyslytsya said on Wednesday night that if Russian ambassador Vassily Nebenzia was not in a position to give a positive answer, he should relinquish the presidency of the Security Council, which Russia holds this month.
The Ukrainian then asked for another emergency meeting of the Security Council, calling on the UN body “to stop the war because it’s too late to talk about de-escalation”.
Mr Kyslytsya then asked if he should play the video of Putin announcing military operations being launched in Ukraine.
Mr Nebenzia replied: “This isn’t called a war. This is called a special military operation in Donbas.”
Prime Minister Boris Johnson said Mr Putin has “chosen a path of bloodshed and destruction” with his attack on Ukraine and that the UK and its allies would respond “decisively”.
Mr Johnson will chair a Cobra committee meeting at 7.30am to discuss the response to the “horrific attacks” in Ukraine, a Downing Street spokesperson has said.
The PM said he is “appalled by the horrific events” in Ukraine and that he had spoken to its president Volodymyr Zelenskyy to discuss “next steps”.
“I am appalled by the horrific events in Ukraine and I have spoken to President Zelenskyy to discuss next steps,” the Prime Minister tweeted.
“President Putin has chosen a path of bloodshed and destruction by launching this unprovoked attack on Ukraine.
“The UK and our allies will respond decisively.”
The developments sent the price of oil surging, with Brent breaching $100 a barrel for the first time since 2014, exacerbating concerns that a war in Europe could disrupt global energy supplies.