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."