The news comes just ten months after 32-year-old gave birth to her first child, Princess Leonore.
In a statement on Facebook with British-American banker husband Christopher O’Neill, 40, the Princess said: "It makes me so happy to share the wonderful news that Chris and I are expecting our second child!"
Baby Leonore's full name is Royal Highness Leonore Lilian Maria of Sweden, Duchess of Gotland. She is fifth in line to the throne.
Madeleine, whose parents are King Carl XVI Gustaf and Queen Silvia, and O’Neill married in June 2013 after meeting in New York City.