The Senate voted 58-41 to approve Hagel after earlier voting 71-27 to end a filibuster that had been blocking the final up-or-down vote.
Sen. Ted Cruz, R-Texas, the main opponent to President Obama's nominee, indicated two weeks ago Hagel might have given still-undisclosed speeches to "extreme or radical groups" or received money from foreign sources or defense contractors from 2008 to 2010.
Senate Armed Services Committee Chairman Carl Levin, D-Mich., debunked Cruz's second accusation, saying Hagel complied with the committee's financial disclosure requirements and deserved to be confirmed as successor to Leon Panetta.
Sen. John Cornyn, R-Texas, said before the vote that he didn't think Hagel was up to the job and called his worldview "dangerously misguided," The Washington Post reported.
"I don't think we want a secretary of defense that has to learn on the job," Cronyn said.
But Senate Majority Leader Harry Reid of Nevada said Hagel had emerged from the nominating process with his reputation intact despite the GOP criticism and filibuster.
"Twelve days later, Senator Hagel's exemplary record of service to his country remains untarnished," Reid said on the Senate floor before the vote.
"Senate Republicans have delayed for the better part of two weeks for one reason and one reason only: partisanship."
Last week 15 GOP senators asked Obama to pull Hagel's nomination. However, NBC News said, it since has become evident Republicans lacked the votes to further delay Hagel's confirmation by extended debate or filibuster.
His appearance before the Armed Services Committee was lackluster, with Sen. John McCain, R-Ariz., calling it "the most unimpressive performance that I have seen in watching many nominees who came before the committee."
Exploding whale video goes viral on Internet
Couple mistakenly served bag of cash at McDonald's drive-thru