The 36-year-old former prison officer said she was shopping in Asda with husband Craig when she blurted out she might be expecting again.
So she bought a test kit and nipped to the loos while Craig, 40, carried on shopping.
Sam, whose nickname is Screwbo, told The Sun: "I went and did it in the toilet while he was getting all the food. "I came out and went, 'Yep - I'm pregnant'. It wasn't planned."
Sam - who is currently touring with fellow X Factor stars - said: "When I got into the car I was really upset because I thought I'd let everyone at my management and the record label down. But they were really good about it. I was going to go on tour solo at the end of October - but I have managed to move it until January."
Sam, from Leicester, who is 10 weeks pregnant, says she and Craig are now over the moon.
She said: "He thinks it's a New Year's Eve baby and he could be right. I've always wanted three kids."
Sam - who is mum to Brooke, eight, and Tommy, five - said: "Obviously I'm getting a bit bigger. I didn't want people to think I'd just got fat. That would make me feel insecure again."
One of the first she told was X Factor mentor Sharon Osbourne.
Sam - whose debut album The Power Of Love is out on March 24 - said: "I'm close to Sharon. We speak quite a lot. She's my confidante and has known about the pregnancy. She's been great."
Suggested For You
Get top stories and blog posts emailed to me each day. Newsletters may offer personalized content or advertisements. Learn more