Meanwhile, Italy and the Netherlands, two of the biggest names to miss out on Russia, continued their rebuilding work with a 1-1 draw in Turin.
Serbia, who face Brazil, Costa Rica and Switzerland in their group, looked vulnerable every time the South American champions - who surprisingly failed to qualify for the World Cup - came forward.
Guillermo Maripan headed in an 89th-minute winner for Chile, a fair reward for their more adventurous display.
Morocco, who face Iran, Portugal and Spain in World Cup Group B, produced plenty of slick passing against Slovakia as they extended their unbeaten run to 11 matches.
Although they fell behind to a long-range Jans Gregus effort in the 59th minute, Morocco replied with goals from Ayoub Kaabi and Younes Belhanda in a 10-minute spell.
Poland's preparations suffered a blow when defender Kamil Glik seriously injured his shoulder in training on the same day as being named in their 23-man squad.
Coach Adam Nawalka said the 30-year-old, who fell awkwardly after attempting an overhead kick, would be replaced by VfB Stuttgart's Marcin Kaminski if he did not recover in time to travel to Russia.
Egypt gambled on Mohamed Salah returning to fitness by naming him in their final squad, while Mohamed Elneny, the midfielder who has not played since April after suffering an ankle injury in action for Arsenal, was also included.
Salah is still recovering from the shoulder ligament injury suffered in last month's UEFA Champions League final when he went off early in the game in Kiev as Liverpool lost to Real Madrid.
Egypt are hoping he will recover within three weeks, which could leave him fit to play in their final group match against Saudi Arabia on June 26.
Egypt's squad also includes veteran goalkeeper Essam El Hadary, who will be 45-years-old when his side play Uruguay. Should he feature, El Hadary would become the oldest player to feature in the World Cup,
Belgium coach Roberto Martinez gave Vincent Kompany two weeks to recover from a groin injury in time for the tournament, retaining the Manchester City captain in his squad but putting Laurent Ciman on standby.
Italy, in their third game under coach Roberto Mancini, spurned a series of first-half chances in Turin and went ahead in the 67th minute when Simone Zaza squeezed home a square pass after a sprint down the right flank by Federico Chiesa.
But Italy had defender Domenico Criscito sent off two minutes later after he picked up a second caution, and paid dearly when Nathan Ake levelled two minutes from time.