The incorporation of Crimea into Russia needs to be rubber-stamped by the upper house and receive a final endorsement by Putin, formalities expected to be completed by the end of the week.
During Thursday's debate, senior lawmakers spoke of the need to protect Russian speakers elsewhere in Ukraine from radical Ukrainian nationalists, statements that could fuel fears of Russian invasion.
"They don't understand in Washington that entire territories will flee as Crimea did if such outrage continues," said Vladimir Vasilyev, the leader of the dominant United Russia faction.
Though Putin, who signed the treaty for Crimea to join Russia earlier this week, said he's not seeking a division of Ukraine, he insisted that the country can "use all means" to protect Russian speakers. He also made his view clear that he sees Ukraine as an artificial state carved up by the Soviet government to include some of Russia's historic lands.
Russia has been arguing for broad autonomy for Ukraine's regions that would turn the nation into a federation, and guarantees of Ukraine's neutral status to prevent its membership in NATO.
Thursday's vote follows Crimea's referendum Sunday, which was held just two weeks after Russian forces effectively took over the strategic Black Sea peninsula. The United States and the European Union have responded by slapping some limited sanctions on Russia.
Ilya Ponomarev, an opposition lawmaker who was the only Duma member who voted against, said in his blog that Russia behaved like a "banal aggressor" and made a grave mistake by annexing Crimea.