Connor Bedard scored his third goal of the season, and Petr Mrazek made 18 saves for Chicago (3-5-0).
“It was tough, and the guys really fought,” Blackhawks coach Luke Richardson said. “It’s a really good sign for the team. I really like that early in the season.”
Karlsson and Shea Theodore each had a goal and an assist for Vegas (7-0-1), which was the last undefeated team in the NHL. Adin Hill made 20 saves.
“We mismanaged pucks all night,” Golden Knights coach Bruce Cassidy said. “We didn’t execute at an NHL level for most of the night and it ended up catching up to us. It happens sometimes, and tonight was one of those afternoons.”
Pavel Dorofeyev gave Vegas a 1-0 lead at 1:35 of the first period when he tipped a Michael Amadio pass.
Karlsson extended the lead to 2-0 at 3:52 by tipping a Theodore one-timer.
The Blackhawks took the lead by scoring three straight goals.
Ryan Donato made it 2-1 at 13:20, scoring to the short side from the left face-off circle.
“He could have shot the puck a few more times,” Richardson said. “That first goal got us going.”
Bedard tied it 2-2 at 14:39 on the rush after receiving a Nick Foligno pass behind the defense.
“I have a couple of goals here,” Bedard said. “Obviously, I have more shots in the other games I didn’t score, but obviously a really good play there and I was trying to get in the right spot.”