Kipyegon, fastest in the world this year, sat in a pack that virtually jogged the opening stages before she and Dibaba pulled clear with a 56.8-second lap around the halfway mark that scattered the field.
Dibaba, who has struggled with injury this year, led with 200 to go but the 22-year-old Kipyegon forced her way past and drove for the line to win in four minutes 8.92 seconds and reverse the order from last year's world championship final.
"It was an amazing race," Kipyegon told reporters. "I needed to focus for the middle because I knew Genzebe is so fast and I really had to kick on the last lap."