Raleigh police charged 28-year-old Matthew Phelps with murder Friday after he made the emergency call.
In the 911 call, Phelps told the operator he took more cold medicine than he should have and woke up after his dream with blood all over him and a knife on the bed he shared with his wife.
"I think I killed my..." the Phelps said.
"What do you mean by that? What happened," the dispatcher responded.
Authorities say 29-year-old Lauren Ashley-Nicole Phelps was dead from stab wounds.
"I had a dream and then I turned on the lights and she's dead on the floor," Phelps told the dispatcher.
"How? How?" the dispatcher asked.
Toward the end of the seven-minute 911 call, Phelps started sobbing, saying his wife didn't deserve this.
Phelps said, "I have blood all over me and there's a bloody knife on the bed. I think I did it. I can't believe this."
Phelps told the dispatcher he took Coricidin Cough because he has problems sleeping.
"She's not moving at all. Oh my god. She didn't deserve this," Phelps said.
The makers of Coricidin extended their "deepest sympathies" to the family and told ABC News that "patient safety is our top priority. There is no evidence to suggest that Coricidin is associated with violent behavior."
Police said that while a full investigation is underway, they believe this crime was not a random act.
Phelps is being held without bond and is due in court Tuesday.
The Associated Press contributed to this report.
Report a typo to the ABC13 staff