Dream was selected as a contestant for the sixth season of the WWE reality television program WWE Tough Enough, which began airing in June 2015. During his time there, he went under his real name, Patrick Clark. Despite being tapped as one of the favorites to win the competition, he was eliminated in the fifth episode due to a perceived lack of humility, placing ninth overall in the series.
On October 17, 2015, it was reported that Clark had signed a developmental contract with WWE. He made his in-ring debut for the company at an NXT live event in Lakeland, Florida on February 5, 2016, losing to Riddick Moss. He made his television debut on the July 20 episode of NXT, losing to Austin Aries. On the October 19 episode of NXT, Clark confronted and challenged NXT Champion Shinsuke Nakamura but was attacked and beaten down by Nakamura. Clark returned and had his first televised victory on the March 1, 2017 episode of NXT, defeating Sean Maluta.
On the May 24, 2017 episode of NXT, Clark debuted a new Prince-inspired character called "Velveteen Dream". In September, Dream began a feud with Aleister Black, where he constantly stalked and harassed Black in order for him to acknowledge Dream and say his name. This led to a match at NXT TakeOver: WarGames, where Dream lost. After the match, Black sat next to a dazed Velveteen Dream, before ultimately saying his name. On the December 6 episode of NXT, Dream was supposed to face Kassius Ohno in a qualifying match for a number one contender's fatal-four way match for the NXT Championship; however, an injury suffered at NXT TakeOver: WarGames kept Dream out of competition, and he was replaced by Johnny Gargano, who defeated Ohno and later won the fatal-four way to become the number one contender. On the January 10, 2018 episode of NXT, Dream interrupted Gargano's interview to mock him for taking 20 minutes to defeat Ohno, claiming that he could've beaten him in "30 seconds tops." On the January 24 episode of NXT, Dream challenged Gargano for his title opportunity, but lost the match. Following the match, Dream was confronted backstage by Kassius Ohno, who pushed him into a wall. Triple H confirmed that a match between Dream and Ohno would be signed for NXT TakeOver: Philadelphia, where Dream defeated Ohno.
During the rest of 2018, Dream participated in several TakeOver events. At NXT TakeOver: New Orleans, Dream competed in the ladder match for the inaugural NXT North American Championship (which was won by Adam Cole). At NXT TakeOver: Chicago II, he was defeated by Ricochet, and at NXT TakeOver: Brooklyn IV, he defeated EC3. At NXT TakeOver: WarGames, he was defeated by the NXT Champion Tommaso Ciampa.
On January 27, 2019 at Royal Rumble Axxess, Dream defeated Tyler Bate in the finals of the Worlds Collide tournament to earn a future singles championship match of his choice on the NXT or NXT UK brands. Dream chose to challenge for the NXT North American Championship held by the new champion, Johnny Gargano. When the episode aired on February 20, 2019, Dream officially won the title. At NXT TakeOver: New York, Dream defeated Matt Riddle to retain the championship, handing Riddle his first loss in NXT. He went on to successfully defend the title against challengers including Buddy Murphy, Tyler Breeze (at NXT TakeOver: XXV), and Roderick Strong and Pete Dunne (both in a triple theat match at NXT TakeOver: Toronto II). On the September 18 episode of NXT, he lost the title to Roderick Strong, ending his reign at 231 days. After taking time off due to a back injury, he returned on the February 5, 2020 episode of NXT to attack The Undisputed Era. At NXT TakeOver: In Your House, Dream challenged Adam Cole for his NXT Championship in a Backlot Brawl, but ended up unsuccessful. Due to a pre-match stipulation, Dream could no longer challenge for the title while Cole was still champion.
Dream returned on the August 12 episode of NXT, where he lost to Cameron Grimes in a triple threat match also involving Kushida. After the match, Dream attacked Kushida, thus turning heel in the process. The following week on NXT, he defeated Finn Bálor to qualify for a spot in a ladder match for the vacated NXT North American Championship at NXT TakeOver: XXX. At the event, Dream failed to win the title. At NXT TakeOver: 31, Dream was defeated by Kushida and attacked by him following their match. On the December 23 episode of NXT, Dream was defeated by Adam Cole in what would be his final WWE appearance. On May 20, 2021, Dream was released from his WWE contract after five months of inactivity.