Cristian Zapata did head in a late consolation for the visitors, but it was not enough to overshadow Son's star turn.
The 25-year-old opened the scoring in the 11th minute, finishing through the legs of Zapata after he wriggled away from two defenders and debutant goalkeeper Leandro Castellanos.
Korea Republic, who booked their place at the 2018 FIFA World Cup despite winning just four of 10 matches in the final stage of qualifying, tallied up eight shots to two by half-time and made their dominance count on the hour.
Castellanos this time allowed Son's tame shot from the edge of the area to wriggle under his body, capping a forgettable first international appearance for the 33-year-old.
Zapata gave Colombia a lifeline when he headed in James Rodriguez's free-kick in the 76th minute, but the home side held on to record their first win in Shin's fifth match in charge.