After failing to appear on the track as a juvenile, Castle Lady made her debut on 14 March in a maiden race over 1600 metres on the synthetic Polytrack surface at Chantilly Racecourse in which she was ridden by Pierre-Charles Boudot. Starting the 2.7/1 favourite she raced in second place before taking the lead 200 metres from the finish and drawing away to win by three and a half lengths from Red Curry. Mickael Barzalona rode the filly in all of her subsequent races. One month after her maiden win Castle Lady was stepped up in class for the Group 3 Prix de la Grotte at Longchamp Racecourse and started the 4.7/1 third favourite behind Lily's Candle and Tifosa. Castle Lady started well and settled behind the leaders before moving up to take the lead inside the last 200 metres. She extended her advantage in the closing stages to win by one and three quarter lengths from the front-running Imperial Charm. In the Group 1 Poule d'Essai des Pouliches over 1600 metres at Longchamp on 12 May Castle Lady started the 5/2 favourite against nine opponents including Matematica, East, Watch Me, Rocques, Coral Beach, Silva and Imperial Charm. Castle Lady settled in fourth place as Imperial Charm set the pace from Suphala and Matematica before making progress on the outside to take the lead approaching the last 200 metres. Commes launched a strong late challenge on the inside but Castle Lady held on to win by a nose with East a length and a half back in third place. After the race Pantall said that the filly would not be moved up in distance commenting "She won't stay the Diane trip, and we'll certainly look at the Prix Jacques le Marois, with maybe the Coronation Stakes in between. She doesn't have a lot of experience, and it's quite something for her to find herself in front and then fight all the way to the death. She still has more physical progress to make, and I think there's more to come". As Pantall had predicted, Castle Lady reappeared in the Coronation Stakes over one mile at Royal Ascot on 21 June. She was made the 6/1 third choice in the betting but sustained her first defeat as she never looked likely to win and came home fifth of the nine runners behind Watch Me, beaten four and a quarter lengths by the winner. In the autumn of 2019 Castle Lady embarked on a North American campaign, starting with the Queen Elizabeth II Challenge Cup Stakes over nine furlongs at Keeneland on 12 October when she finished second by a length to the Del Mar Oaks winner Cambier Parc. The filly ended her season on 2 November in the Breeders' Cup Filly & Mare Turf over ten furlongs at Santa Anita Park. She started an 18/1 outsider and came home last of the ten runners behind Iridessa, beaten almost thirteen lengths by the winner after fading badly in the straight.