Critics have argued the pipeline, which will take gas from the Russian Arctic under the Baltic Sea to Germany, represents a huge geopolitical prize for the Kremlin.
Mr Putin told the St Petersburg International Economic Forum: “Today… the pipelaying work of the first Nord Stream 2 line was successfully finished.
“Work on the second line is ongoing.”
He also revealed plans drawn up by Gazprom, an energy corporation that is majority state-owned, saying the firm is ready to start pumping gas into the pipeline.
Following Mr Putin’s announcement, the company’s shares rallied, adding 0.6 percent and reaching 273.80 roubles ($3.74/£2.64) per share.
The sudden rise brought it to the highest level reported since mid-2008.
Gazprom was left without its pipe-laying company in late 2019 after American sanctions were slapped on.
Mr Putin’s announcement came less than two months before he is due to meet US President Joe Biden in Geneva for talks.
The meeting is aimed at easing tensions between Moscow and the west.
The pipeline bypassed Ukraine, potentially depriving it of lucrative transit revenues when Kyiv is locked in a confrontation with Moscow.
However, the Kremlin says it will continue to use Ukraine as a gas transit country.
Ukraine and Russia have been locked in a bitter war since 2014.
Since 2019 Russia has issued more than half a million passports to people living in the self-proclaimed Donetsk or Luhansk People’s Republics in eastern Ukraine.
Kyiv has refused to recognise the people as dual citizens and has expressed frustration that the EU has not levied sanctions on Russian officials involved in issuing passports.
After a build-up of military personnel and equipment on Ukraine’s eastern border with Russia earlier this year, President Zelensky stepped up his call for NATO to give his country membership.
The alliance will meet in Brussels on June 14 in the hope of repairing transatlantic ties under the new American president amid growing tensions with Russia.
Ukraine expressed disappointment that it was not invited as it seeks to join the group.
The country’s foreign minister Dmytro Kuleba said: “We understand the desire of the allies to hold a closed summit… but we do not understand how it is possible not to invite Ukraine.”