Portugal är topp i sin kvalificerade grupp för Euro 2016 men vilade Ronaldo mot den afrikanska sidan, som rankas 38: e i världen.
Odair Fortes satte Cape Verde före Admilson Gege fördubblade sin ledning efter pausen.
Värdarna hade också försvarare Andre Pinto skickas iväg efter en timme.
Kap Verde - elimineras på gruppstadiet av årets Afrika Cup of Nations - är sandwiched mellan Wales och Skottland i Fifa världsrankingar.
Öarna ligger i Atlanten, ungefär 400 kilometer väster om Senegal i Västafrika.
Matchändar, Portugal 0, Kap Verdeöarna 2.
Andra halvlek, Portugal 0, Kap Verdeöarna 2.
Foul av André Almeida (Portugal).
Babanco (Cape Verde Islands) vinner en frispark i anfallshalvan.
Försök missade. Ukra (Portugal) höger fotade skott från utsidan lådan är nära, men missar till vänster. Hjälpt av André Almeida.
Eder (Portugal) vinner en frispark på vänsterflygeln.
Foul av Jeffry Fortes (Cape Verdeöarna).
Vieirinha (Portugal) vinner en frispark i defensiva halvan.
Foul av Nuno Rocha (Cape Verdeöarna).
Vitorino Antunes (Portugal) vinner en frispark i den defensiva halvan.
Foul av Rodrigues (Cape Verdeöarna).
André André (Portugal) vinner en frispark i den defensiva halvan.
Foul av Ricardo (Cape Verdeöarna).
Hörnet, Portugal. Förföljd av Jeffry Fortes.
Försök missade. Vieirinha (Portugal) höger fotade skott från höger sida av lådan missar till vänster. Hjälpt av Danilo Pereira med ett huvudpass efter ett hörn.
Hörnet, Portugal. Förföljd av Jeffry Fortes.
Ukra (Portugal) vinner en frispark på vänsterflygeln.
Foul av Jeffry Fortes (Cape Verdeöarna).
Försök missade. André André (Portugal) huvud från mitten av lådan missar till vänster. Hjälpt av Vitorino Antunes med ett kors.
Substitution, Kap Verdeöarna. Ricardo ersätter Júlio Tavares.
Substitution, Kap Verdeöarna. Ryan Mendes ersätter Héldon.
Substitution, Kap Verdeöarna. Rodrigues ersätter Odaïr Fortes.
Ersättning, Portugal. André Almeida ersätter André Gomes.
André Gomes (Portugal) vinner en frispark i anfallshalvan.
Foul av Sérgio Semedo (Öarna i Kap Verde).
Vitorino Antunes (Portugal) vinner en frispark i den defensiva halvan.
Foul av Babanco (Cape Verdeöarna).
Substitution, Kap Verdeöarna. Calú ersätter Toni Varela.
Foul av André André (Portugal).
Nuno Rocha (Cape Verde Islands) vinner en frispark i defensiva halvan.
Hörnet, Portugal. Förföljd av Steven Fortes.
Ukra (Portugal) vinner en frispark på vänsterflygeln.
Foul av Babanco (Cape Verdeöarna).
Sérgio Semedo (Cape Verde Islands) visas det gula kortet.
Ukra (Portugal) vinner en frispark i den defensiva halvan.
Foul av Sérgio Semedo (Öarna i Kap Verde).
Foul av André André (Portugal).
Héldon (Cape Verde Islands) vinner en frispark i defensiva halvan.
Ersättning, Portugal. Pizzi ersätter Cédric Soares.
Ersättning, Portugal. André André ersätter Adrien Silva.
Tioman Portugal kämpade utan kapten Cristiano Ronaldo som de föll till en överraskning nederlag i en vänlig hemma till Kap Verde öarna.