Born in Vratsa, at the age of six Kraev began playing football at the local club Botev Vratsa, for whom his father Boyko Kraev had also played. In 2008, he joined Hristo Stoichkov's academy in Vilafranca, Spain, as a part of a Gillette programme for young talented players, which was initiated by Stoichkov. Two years later, Kraev returned to his home country to join Chavdar Etropole. Then he spent one year with his first club Botev Vratsa.
Levski Sofia
In January 2013, at the age of 15, Kraev joined Levski Sofia's academy. He made his first team debut in a 1–1 league draw against Lokomotiv Plovdiv on 19 July 2014, coming on as a second-half substitute. On 23 September, he marked his first start by scoring a hat-trick in a 7–1 away win over Spartak Varna in the Bulgarian Cup. On 14 October, Kraev was named by The Guardian as one of the forty most promising young players in the world. On 12 December 2014, Kraev signed his first professional contract, on a three-year deal. Two days later, he was invited for a trial at Juventus. In January 2015, Kraev also spent a week on trial at English club Manchester City. Kraev scored his first league goal for Levski in an 8–0 home win over Haskovo on 27 February 2015. On 26 May 2015, he scored his first A Group hattrick in a 6–0 win against Marek Dupnitsa. Kraev's hattrick was the 100th in Levski's history in the Bulgarian league. On 9 April 2017, Kraev scored four goals in a 5–0 win over Lokomotiv Plovdiv, thereby becoming the youngest player in Levski history to score four goals in one game.
Midtjylland
On 19 June 2017, Kraev signed with Danish Superliga side Midtjylland on a five-year deal for a reported fee of €500,000. He made his debut for the team in a Europa League match against Derry City coming on as a substitute in the 73rd minute and scoring a goal 10 minutes later. On 12 April 2018, Kraev scored twice in a 2-1 win against Hobro IK and qualified his team for the cup's semifinals after coming on as a substitute in the 77th minute and scoring both goals in the game's added time. Three days later, he scored his first league goal in a 2-1 win against FC Nordsjælland. Kraev was part of the squad that won the Danish Cup and the Danish Superliga for Midtjylland during his stay at the Herning club.
On 22 June 2019, Kraev was sent on a season-long deal at the Portuguese Primeira Liga team Gil Vicente. Kraev made his debut for the team in a Taça da Liga match against Aves, providing an assist for the first goal and later scored the winning goal in the 90th minute for a 3–2 win. A week later, on 10 August, Kraev made his league debut, playing a full match against Porto, providing the winning goal in the 77th minute, for a 2–1 win over one of the league favorites.