The singer is five-months pregnant with the couple's second child, and her little baby bump was on display as she sat pitch-side for the game with her son.
CLICK ON PHOTOS TO ENLARGE
Milan, who will be two in January, made the perfect team mascot in a full Barcelona strip. With an international footballer for a father, the little boy understandably appears to be a big fan of the game, and watched the match intently as he sat with his mummy.
Gerard, 27, was clearly delighted to have his family in the stadium, and shared a very sweet moment with his son during a break in play as he lifted him from Shakira's arms for a cuddle.
Shakira, 37, recently said she would love to have "20 children" with the Spanish sportstar as she opened up about her second pregnancy.
"Now that I'm pregnant I'm trying, for the first time in my life, to not do so many things at the same time," she told Europa Press.
"Although it's always difficult and issues get in the way even when you don't want them to. But the majority of the time I do dedicate myself to taking care of my belly, my pregnancy, and Milan."
The star, who is expecting another little boy, added, "With Gerard, I'd have 20 children but I don't think I'll have the luxury to do it. For now, we're going for the second one, we'll see what happens. We'll see if one day we get a girl. We'll see!"