The 30-year-old, who was set to become an unrestricted free agent, was acquired from the Los Angeles Kings in February.
“Carl is a versatile player who can play on any line and is an excellent penalty killer,” Capitals general manager Brian MacLellan said in a statement. “He is a proven winner and provides great leadership to our team.”
Hagelin had 11 points in 20 regular-season games with Washington and added one assist in seven playoff games.
Hagelin began last season with the Penguins, with whom he won two Stanley Cups before being dealt to Los Angeles for Tanner Pearson in November. Washington sent third- and sixth-round draft picks to the Kings for the forward.