Friendly: South Korea 1 Croatia 2
Lee Keun-Ho found the net in stoppage time for the hosts but it proved to be only a consolation for Hong Myung-Bo's men, who had secured their first win under the former defender last time out against Haiti.
Kalinic and Vida scored within six minutes of each other, with the former breaking the deadlock after 65 minutes.
Hong named a strong starting line-up, with promising Bayer Leverkusen striker Son Heung-Min and Bolton's Lee Chung-Yong both starting.
Croatia boss Igor Stimac was without Mario Mandzukic and Luka Modric, who were withdrawn from the squad to spare them the long journey for a friendly match.
Mandzukic has been a crucial part of the country's FIFA World Cup qualifying campaign, netting three goals in eight starts.
There were few clear-cut openings in the first half as both sides seemed content to enjoy long spells of possession without really threatening in the final third.
But the game opened up after the interval and Vida broke the deadlock with his first international goal, heading past Jung Sung-Ryong from Leon Benko's delivery.
The second goal came courtesy of another towering header, but this time it was Kalinic who got on the end of an excellent cross from Ivan Perisic.
South Korea finally managed to grab a consolation through a fantastic header from Lee Keun-Ho in the closing stages.
The Koreans, who have already qualified for the World Cup, have now won just one of their last seven matches.
Croatia, who have only lost twice in their last 12 outings, look set to face a play-off to book secure their berth at Brazil 2014.