Phil Kessel, Dominik Simon and Sidney Crosby scored for the Penguins (26-16-6), who lost for the third time in four games after winning 10 of their previous 11. Casey DeSmith made 28 saves.
"We gave up three breakaways and two 2-on-1s in the first 20 minutes of the game," Pittsburgh coach Mike Sullivan said. "We just didn't play the game smart."
Kessel scored his 20th goal of the season at 3:51 of the first period to give the Penguins a 1-0 lead.
Vegas scored three straight goals in a stretch of 9:54. Theodore scored on the power play at 6:09 to tie it 1-1, Pacioretty scored at 15:20 for a 2-1 lead, and Lindberg scored 43 seconds later to make it 3-1.
"We just made some mistakes, and early is probably when we made the most mistakes," Crosby said. "We found a way to get back in in the second. I thought we did a lot of good things."
Simon scored 16 seconds into the second period to cut the lead to 3-2. Crosby scored his first goal against the Golden Knights at 5:56 to tie it 3-3.
Evgeni Malkin appeared to give the Penguins a 4-3 lead at 10:17, but the goal was waved off after video review showed Malkin kicked the puck into the net.
Marchessault scored his first goal 2:09 later to give Vegas the lead.
"It was a big goal," Marchessault said. "We let them back in the game and that's not what we do normally. Their top players, you give them enough room and they'll make you pay."
Karlsson scored at 13:45 of the third period to make it 6-3. He had an assist on Marchessault's second goal for his first point in nine games.
"They've been pressing for goals for the last little while, and to see [Marchessault] get three tonight and for Karlsson to get one, that's huge for our club," Golden Knights coach Gerard Gallant said. "They've played really good hockey and they played really good defensive hockey … but when those guys are scoring and we get everybody else scoring and chipping in it's going to be big for our team."