The 3-year-old colt took the second crown of horse racing's Triple Crown with a time of 1:56.47 on a fast track under sunny conditions.
Jesus Castanon was riding Shackleford, trained by Dale Romans. The colt's win ensured there would be no Triple Crown winner for the 33rd straight year since Affirmed pulled off the feat in 1978.
Animal Kingdom, the winner of the Kentucky Derby May 7 and the 2-1 favorite Saturday, started slow, hanging in the back of the pack until turning it on down the stretch, but came up a bit short.
Shackleford, a 12-1 shot, gave ground as Animal Kingdom came down the middle of the track but held on for the win.
Astrology was third and Dialed In -- who along with Animal Kingdom was bringing up the rear at the start of 14-horse race -- came in fourth.
Completing the order of finish were Dance City, Mucho Macho Man, King Congie, Mr. Commons, Isn't He Perfect, Concealed Identity, Norman Asbjornson, Sway Away, Midnight Interlude and Flashpoint.