At the 2004 Summer Olympics in Athens, Kim competed again in two swimming events, and also, served as a senior captain for the South Korean swimming team. After reaching the top 16 final from the Summer Universiade in Daegu, his entry times of 2:05.43 (200 m individual medley) and 4:25.40 (400 m individual medley) were both officially accredited under a FINA B-standard. On the first morning of the Games, Kim placed twentieth in the 400 m individual medley, his best finish in an Olympic career. Swimming in heat two, he set a South Korean record of 4:23.05 to claim a second spot by a 4.50-second margin behind winner Dean Kent of New Zealand. In the 200 m individual medley, Kim participated in heat three against seven other swimmers, including fellow three-time Olympian Jacob Carstensen of Denmark. He edged out Philippines' Miguel Molina to take another second spot by 0.22 of a second in 2:05.06. Kim ended his third Olympic stint with a thirty-second place effort in the preliminaries.