Carrie was joined onstage by co-host Brad Paisley, who joked, "Remember last time, when I accidentally revealed the gender of your baby?"
"Baby girl, I love you so much", he said.
"I am shocked beyond shocked", a tearful Urban said.
Meanwhile, a pregnant Underwood (with a boy!) won female vocalist of the year, Chris Stapleton took home male vocalist of the year, and Kacey Musgraves won album of the year.
The CMAs also took time to honour those affected by the deadly wildfires in California.More news: Lorde Calls Out Kanye West & Kid Cudi For Copying Stage Design
Brad let it slip that Carrie was expecting a baby boy at the 2014 CMA Awards - her son Isaiah is now three. "I wish my dad was alive to see this, but I think he's watching over me tonight", Urban said after thanking his family and his people.
But in a surprise result, he lost the night's biggest prize - entertainer of the year - to Keith Urban, the former American Idol judge and husband of actress Nicole Kidman. "Let the music unite us with love", Brooks said.
Underwood worked triple-duty as co-host, performer and nominee at the CMAs, and won female vocalist of the year. And I just feel very, very blessed and very grateful that I get to do what I do. "God bless country music".
Kelsea Ballerini also impressed with her first live performance of new track Miss Me More, and Bebe Rexha and Florida Georgia Line hit the stage to sing their worldwide hit Meant To Be. He also won Music Video of the Year for "Fire Away" in 2016.
Well, this time the reveal seemed planned and Underwood looked overjoyed to be welcoming another boy.