Tomas Jurco and Patrick Sharp scored, and J-F Berube made 37 saves for the Blackhawks (29-31-8), who lost for the first time at home in four games. They trail the Los Angeles Kings by 13 points for the second wild card from the Western Conference.
"Tough second period for us," Sharp said. "Thought we could have made better decisions with the puck when we had it. Felt like we gave it up a little bit too easy, and against a good team like Carolina, they're going to check you, shut you down, and then find a way to stay in the game. Not enough offense generated by us tonight."
Aho broke a 2-2 tie at 4:35 of the third period with a power-play goal, deflecting a shot from Teuvo Teravainen.
"I didn't see much," Aho said. "I just saw [Teravainen] shooting. Actually, I saw the puck all the way and just tried to get a piece of it and tip it in."
Williams tied it at 2-2 1:06 into the second period. He came out of the penalty box, received a stretch pass from Elias Lindholm and scored on a breakaway.
"That's a dream," Williams said. "That's what you dream for coming out of the penalty box, that they don't score and you get a breakaway somehow. I think it was the first breakaway I've had in years, so I'm glad I got one in."
Jurco gave the Blackhawks a 1-0 lead at 6:02 of the first period when he redirected a Brent Seabrook shot from the point.