"I intentionally shot Lori Hacking in the head with a .22 rifle," Mark Hacking told a judge in a Salt Lake City (search) courthouse.
Prosecutors dropped charges of obstruction of justice in exchange for the guilty plea. Sentencing was scheduled for June 6. Hacking, 28, could get life in prison.
Hacking will not face the death penalty because prosecutors were unable to prove Lori Hacking, 27, was five weeks pregnant. She had told friends and family she was expecting her first child.
Investigators believe Hacking killed his wife after she learned he had not been accepted to medical school. The couple was preparing to move to North Carolina; Hacking claimed he was enrolled at the University of North Carolina-Chapel Hill.
Prosecutors believe Hacking shot his wife while she slept.
Lori Hacking's father, Eraldo Soares, said hearing Hacking admit guilt in court "was just like a knife going right through my heart. I could not imagine that he could do that to Lori."
Lori's mother, Thelma Soares, wept as she talked to reporters after the hearing.
"I still have a lot of questions that are, have never been, addressed, and I need to get some answers from Mark," Soares said. "But that will have to be between Mark and me in the future at some point."
Hacking reported his wife missing on July 19, 2004, telling friends and family she had gone out for a jog and hadn't returned.
That same day, hours after making a televised plea for his wife's return, Hacking was spotted running around a local motel naked. He was admitted to a psychiatric hospital.
As a massive search for Lori Hacking's body was under way, a string of lies Mark Hacking had told his wife and family came to light. Investigators discovered that not only had Hacking not been admitted to medical school, he had never even graduated from college.
They also discovered Lori Hacking's car keys and wallet, discounting Mark Hacking's claim that she had driven out to a nearby park to jog. It was also found that Hacking had dumped the couple's mattress and had purchased a new one just before he phoned police to report his wife missing.
Family members and friends were stunned at the revelations. A little more than a week after Lori Hacking disappeared, Mark Hacking confessed to his brothers that he killed her.
Two-and-a-half months later, Lori Hacking's remains were found in a Salt Lake county landfill.
There was speculation after Hacking was arrested that he would plead innocent by reason of insanity. But according to local newspapers, none of the possible key witnesses in the case were ever contacted by defense attorneys, signaling Hacking decided to avoid going to trial some time ago.
Before the hearing, Lori Hacking's brother Paul Soares said he was not looking forward to seeing his brother-in-law.
"For 12 years this was a person I got along with, a person I loved," Soares told FOX News. "Now, looking back at what he's done, it's going to be really hard."
Erin Galbraith Huband, a close friend and former roommate of Lori Hacking, said earlier on Friday she was relieved at news of the plea deal.
"It was good to hear that maybe he might step up and say, 'This is what I've done and I'm willing to take responsibility, finally,'" she told FOX News.
FOX News' Jane Roh and Adam Housley and The Associated Press contributed to this report.