The royals smiled and waved to the media as Letizia carried Sofia, their second child, who was born last Sunday and who is third in line to the throne.
Prince Felipe held his first-born, Leonor, a year-and-a-half old, who wore a red dress and wriggled in his arms as she tried to grab a microphone.
Halfway through the five-minute appearance Leonor started waving and baby-talked the word "adios," drawing a chorus of "oohs" and "ahs" from the crowd.
At another point the prince put Leonor down on the ground and tried to hold onto her arm but eventually gave up, and she skittered off to get closer to delighted reporters.
Letizia said she had named the new baby after Queen Sofia, wife of King Juan Carlos, as a tribute to her.
She said she would reduce her workload to spend a lot of time with Sofia.
"We will do everything we can to be the best parents for them," the prince said.
Sofia is the eighth grandchild of the king and queen.