The 29-year-old Swiss international, who has been at Wolfsburg since 2008, agreed to the new deal in May last year but was at risk of being free agent at the end of the season due to a missing signature on the contract.
"We have been talking in the past weeks and we are delighted to have sealed them successfully today," said Wolfsburg sports director Klaus Allofs.
"It was clear for both sides that the cooperation should continue and Diego always expressed his support for the club unconditionally."
Benaglio and the club have an option to extend the deal by one more year.
Allofs, who took up his post in November, had earlier confirmed the old deal was not valid and that the club would meet the keeper, who has played 148 Bundesliga matches for the team, to sort out the matter.
"I have always said the VfL is my club and I want to stay here for a long time," Benaglio said in a statement. "I am happy to secure at least another three years here."
According to German media reports, a clause in the keeper's contract extension, allowing him to leave early for a fixed sum if then coach Felix Magath was no longer in his post, had prompted one director not to sign it.
Magath, who was both coach and sports director, was sacked in October.