The Liverpool athlete beat Northern Ireland’s Kate O’Connor by 6377 points, with England team-mate Jade O’Dowda placing third at the event in Birmingham.
It was the 29-year-old's first victory since winning the world title in 2019 after recovering from two serious injuries, one which saw her pull out of the 2020 Tokyo Olympic games.
After her victory she paid tribute to her grandmother Mary, who died in July.
"She unfortunately passed away a couple of days after I returned from Eugene so it’s been a tough week so I’m just happy to get through it," she said.
"It’s been particularly hard because the last champs at Glasgow indoors she was here so it was quite hard not to see her face in the crowd.
"I’ve done three heptathlons this year, I’m just happy to get through and healthy. Hopefully this’ll be a stepping stone for me like it was in 2018 for better things to come next year.
"It wasn’t about the points, it was about being competitive, trying to find my third attempt response that I used to have which I didn’t have in the last couple of heptathlons I’ve done. So, I’m so happy for many different reasons."
Johnson-Thompson ruptured her Achilles in December 2020, and, despite making it to Tokyo in August 2021, a serious calf injury in the 200m saw her pull up with just 100m to go.
Her injuries also meant she was unable to defend her world title in Eugene, Oregon, in July, where she finished eighth, as Nafi Thiam reclaimed the crown after losing to Johnson-Thompson in Doha in 2019.
The heptathlon, consisting of seven events, is usually split across two days.
Events include the 100m hurdles, high jump, shot put, 200m sprint, long jump, javelin throw, and 800m
Johnson-Thompson held an overnight lead at the Alexander Stadium, and clung on to a 122-point advantage after the long jump on Wednesday, 3 July.
She then consolidated her lead with a stunning personal best of 44.33m in the javelin, one of her weaker events, to leave her on the verge of gold.
“The javelin’s my first PB in three years so I’m really happy with that. I’m not in shape,” she said.
“I’m not in the best shape I can be so I didn’t expect any personal bests. I wanted to get through with solid performances so that was unexpected but a nice surprise.”
The throw gave her a 136-point advantage over O'Connor heading into the final 800m and she ran two minutes 13.93 seconds to finish second in the race and comfortably claim overall victory.
Want a quick and expert briefing on the biggest news stories? Listen to our latest podcasts to find out What You Need To know...