Right-back Munoz acrobatically converted Luis Diaz’s cross in the 61st minute to earn his side a morale-boosting result moving towards this summer’s Copa America in the United States.
Three-time European champions Spain enjoyed plenty of possession at the London Stadium but lacked a cutting edge as their eight-match winning run ended.
Former Real Madrid man James Rodriguez played an instrumental role in his country’s success, which stretched their unbeaten run to 20 games, after coming off the bench following a forgettable first half.
Spain will look to bounce back on Tuesday night when they host Brazil at the Santiago Bernabeu in Madrid.
The Spanish – unfamiliar in yellow shirts against a nation renowned for wearing them – opted to leave influential Manchester City midfielder Rodri on the bench for the evening, while Liverpool’s Diaz captained Colombia.
Luis de la Fuente’s side started in the ascendancy but without seriously threatening in a tight opening period of few chances.
Athletic Bilbao defender Daniel Vivian nodded narrowly over on his international debut following a fine cross from Alex Grimaldo, who earlier fired straight at opposition goalkeeper Camilo Vargas.
Colombia, backed by a sizeable support at the home of West Ham, were aggressively pressed by a team monopolising possession.
Mateo Cassierra forced a save out of Arsenal goalkeeper David Raya following a well-worked free-kick routine but the South Americans were restricted to little as they largely sought opportunities to counter.
Colombia manager Nestor Lorenzo turned to James in search of a much-needed spark for the second period, while Spain keeper Raya was replaced by debutant Alex Remiro of Real Sociedad.
Lorenzo’s men improved significantly after the restart, albeit Vargas had to be alert to deny Gerard Moreno a 49th-minute opener.
Minutes after skying well over when well placed, ex-Everton player James played a key role in what proved to be the winner.
His fine pass released Diaz down the left and, after twisting and turning Vivian, the skipper delivered an inviting centre which bounced before Munoz, winning his 24th cap, dispatched the ball high into Remiro’s net with an eye-catching scissor kick.
The thumping finish sparked wild scenes of celebration among the healthy Colombian contingent in a crowd of more than 43,000.
Spain introduced striker Alvaro Morata as part of a triple change.
But they could not find a leveller as they slipped to a first defeat since a shock 2-0 European Championship qualifying loss to Scotland last March.
The former Monaco, Real Madrid and Everton midfielder moved to Greece at the beginning of the season, but departs having not played for the club since mid-February due to injury.
A statement from Olympiacos read:" James will always be part of our club and a member of the 'red and white' family. We want to thank him for his service and we wish him every success in the future."
In his own message on social media, James said: "I would like to thank everyone for all the time that we have spent together.
"Although we are going our separate ways, I feel that I will always be a member and welcomed in the family of the great port Piraeus. I wish all the best to Olympiacos and every success in the future."
A breakout star from the 2014 World Cup in Brazil, James is now on the hunt for a new club having struggled to find stability in recent years.
James has not spent more than a single season at any of his last three clubs – Olympiacos, Al-Rayyan and Everton – while a two-year loan stint with Bayern Munich from 2017-2019 saw the Bundesliga giants decline to make a permanent move.
He remains a regular at international level with Colombia, however, scoring in a 2-2 draw with South Korea last month and boasting 90 caps for his country.
James, signed amid Galactico fanfare six years ago, has become almost a forgotten man with the Spanish giants, playing only a minor role in this season's LaLiga title charge.
His 78-minute run-out against Real Sociedad in June was a first LaLiga appearance for James since October, and he has not played since.
There are reports Madrid consider James superfluous to their needs and will look to sell him at the end of this campaign, with Manchester United among the clubs linked with him.
Zidane struck a different tone in his news conference ahead of Monday's match against Granada, even wishing James well on the attacking midfielder's birthday.
However, by later leaving James out of his 23-man squad for the Granada trip, the head coach's actions perhaps proved more telling than his words.
"He is important, and he is ours," Zidane told reporters.
"He is 29 years old today and I congratulate him. It is true some play more and others less, but I will not look down on any player.
"Everyone brings something to the team. I can count on all of those I have."
James has just a year left on his Madrid contract and his influence has greatly diminished.
Before this season, he spent two years on loan at Bayern Munich, winning a pair of Bundesliga titles but not doing enough to secure a permanent transfer.
Signed from Monaco by Madrid in 2014 after a stellar World Cup, James was initially given the coveted number 10 shirt but now wears number 16, with his eight league appearances this season amounting to just 419 minutes on the pitch.
Werner, 24, was heavily linked with a move to Liverpool from RB Leipzig, but the coronavirus pandemic may have changed that.
Meanwhile, Dybala's future is set to be clear shortly.
TOP STORY – LIVERPOOL PUT WERNER PLANS ON HOLD
Liverpoolhave put their plans to sign Werner on hold and also stopped contract talks due to coronavirus, according to The Daily Mail.
There is uncertainty over the financial statuses of sporting clubs around the world due to coronavirus and Liverpool are waiting until there is greater clarity.
Star midfielder Georginio Wijnaldum and defender Dejan Lovren are among the Liverpool players out of contract in 2021.
One club seemingly not prepared to wait are Juventus, with CalcioMercato reporting Dybala is getting closer to a contract extension with the Serie A giants.
ROUND-UP
- Luka Modric is going nowhere. AS claims the midfielder will see out his contract, which runs until 2021, at Real Madrid. Just what Madrid's midfield looks like next season remains to be seen. Sport says Madrid will let James Rodriguez leave and bring Martin Odegaard back from his loan spell at Real Sociedad. It also reports Takefusa Kubo will be used as part of a deal to bring back Odegaard.
- Talk about a deal that would see Neymar return to Barcelona and Antoine Griezmann join Paris Saint-Germain remains alive. According to Sport, PSG would welcome Griezmann while they attempt to re-sign Kylian Mbappe to unite the France team-mates at club level.
- One player unlikely to be at PSG is Edinson Cavani. Tuttosport reports Napoliare thinking about bringing the forward, who is out of contract at the end of the season, back to the Stadio San Paolo.
- Marc-Andre ter Stegen's future remains unclear. Sport claims Barcelona and the goalkeeper are no closer to renewing a contract that will expire in 2022.
- Henrikh Mkhitaryan is seemingly happy on loan at Roma, but whether he stays remains to be seen. The Daily Express says Arsenal have rejected two bids – the last one around €11.4million (£10m) – from the Serie A club, who may instead turn to Chelsea's Pedro.
- As they plan a move for Borussia Dortmund star Jadon Sancho, Chelsea have told Willian he has no chance of getting a three-year deal, according to the Mirror. Willian is out of contract at the end of the season.
The former Borussia Dortmund star is not short of suitors amid uncertainty over his future in London.
And Real Madrid are reportedly making their move.
T OP STORY – MADRID TELL ARSENAL TO DECIDE OVER AUBA
Real Madridhave set Arsenal a deadline as they look to sign star forward Pierre-Emerick Aubameyang, according to The Mirror.
Aubameyang is out of contract in June 2021 and the Gabon international has been tipped to leave Arsenal.
Madrid reportedly want Arsenal to make a decision on Aubameyang's future by June 15 as the likes of Inter and Paris Saint-Germain also circle.
ROUND-UP
- Sport reports Barcelona are on the brink of signing Juventus midfielder Miralem Pjanic. The LaLiga giants are close to agreeing a four-year deal with the Bosnia-Herzegovina international.
- Pjanic had been mentioned in a possible swap deal with Barca's Arthur, who has previously dismissed an exit. However, Tuttosport claims Juventus have not given up on signing Arthur.
- Former RB Leipzig boss Ralf Rangnick is set to become head coach of Milan, reports Calciomercato.
- The Express says Manchester United have identified Ajax midfielder Donny van de Beek as a top transfer target. Van de Beek has also been linked to Madrid and Juve.
- Madrid want Casemiro to continue at the Santiago Bernabeu, but Mundo Deportivo reports the futures of captain Sergio Ramos, Luka Modric, Lucas Vazquezand James Rodriguezare up in the air.
- According to The Sun, Borussia Dortmund want to sign Chelsea teenager Charlie Webster.
- Inter have set their sights on Freiburg centre-back Robin Koch, reports Tuttomercatoweb. Koch has also been linked to Napoli and Benfica.
- United are keeping tabs on Swansea City defender Joe Rodon, says The Mirror. The Red Devils have already raided Swansea previously, signing Welshman Daniel James ahead of the 2019-20 season.