World champion Germany reached the
Germany was leading through Kerem Demirbay's 48th-minute strike when Cameroon had Sebastien Siani wrongly sent off, even after a challenge on Emre Can was reviewed by the video assistant referee.
Chile also advanced to the semifinals by playing to a 1-1 draw against Australia. The Chileans will play Portugal on Wednesday.
By securing top spot in Group B, the world champions will now stay in the Black Sea resort of Sochi and play Mexico on Thursday.
It took protests from the Cameroon players, including Siani sarcastically applauding referee Wilmar Roldan, for the Colombian to check the replays himself on the side of the pitch in Sochi's Fisht Stadium.
Defender Ernest Mabouka was then correctly dismissed in the 64th minute.
Germany extended its lead two minutes later courtesy of a diving header from Timo Werner.
There were flickers of a comeback by the African champions when Vincent Aboubakar's header slipped through Marc-Andre Ter Stegen's raised hands.