Moldovan was born on 8 July 1972 inBistrița, Romania and began playing junior-level football at local clubGloria.[1][2] He started his senior career by playing for Gloria during the1988–89 Divizia B season.[1][3] In thefollowing season he helped the team earn promotion toDivizia A.[1] Subsequently, he made his debut in the competition on 21 October 1990 under coachRemus Vlad in a 1–0 home loss toPetrolul Ploiești.[1][4]
In thefollowing season he played forGrasshoppers, scoring a goal on his debut in a 1–1 draw againstSion.[11] Until the end of the season, he netted a personal record of 27 goals, including two hat-tricks in victories againstYoung Boys andLausanne-Sport, being again the top-scorer of the season and the Foreigner of the Year.[1][2][9][10][11] In the same season Moldovan scored a goal which helped the club eliminateSlavia Prague in the1996–97 Champions League qualifying round, reaching thegroup stage where he made five appearances, scoring a brace in a 3–1 victory againstAuxerre.[1][12] For the way he played in 1996, Moldovan was placed third in the ranking for theRomanian Footballer of the Year award.[13] In thenext season he netted two hat-tricks in two wins against his former club, Neuchâtel Xamax andServette respectively.[1][14] He scored 17 league goals until the end of the first half of the season, and though he left afterwards, the team managed to win the title without him.[1][14] During his spell withThe Hoppers, Moldovan also scored three goals which helped the team earn two victories in theZurich derby againstFC Zürich.[11][14]
His next spell was atFenerbahçe, making hisTurkish First Football League debut on 7 August 1998 when coachJoachim Löw used him the entire match in a 0–0 draw againstDardanelspor.[1][2][18][19] In the following round he netted his first goals, managing a double in a 3–0 victory againstGençlerbirliği.[18] He scored a total of 15 goals until the end of theseason, including a hat-trick in a 6–0 win overAdanaspor.[1][18] Moldovan also scored a goal in a 1–0 victory againstParma from the first round of the1998–99 UEFA Cup, however the qualification was lost as the Italians defeated them with 3–1 in the second leg.[1][20] He started the1999–2000 season by scoring a goal in a 4–1 away win overİstanbulspor, netting a total of 18 goals in that season, including another hat-trick in another victory against Adanaspor.[1][21]
Afterwards he joinedNantes which paid€5 million to Fenerbahçe for his transfer, and Moldovan earned there the nicknameMoldo-but thanks to his goalscoring ability.[1][2][22][23] He made his debut in theFrench Division 1 on 19 August 2000 when coachRaynald Denoueix sent him in the 71st minute to replaceOlivier Monterrubio, managing to score the victory goal in the 90th minute of the 3–2 win overMarseille.[24][25] Until the end of theseason, he netted 11 goals in 23 matches which helped the club win the championship.[1][24][23][26][27] In the same season,The Canaries participated in theUEFA Cup, Moldovan helping the club eliminateKryvbas andLausanne-Sport, netting a hat-trick against the first and scoring two goals against the latter, reaching the round of 16 where they were defeated byPorto.[1][28] He started the following season by winning theTrophée des Champions, coach Denoueix using him as a starter in the 4–1 win overStrasbourg.[29] He then played in three games in the2001–02 Champions League second group stage, scoring two goals in two 1–1 draws againstManchester United andBoavista.[1][30]
Afterwards he went back to Nantes, scoring 11 goals in 12 league appearances in the second half of the2003–04 season, including two doubles in victories againstNice andrivalsRennes and a hat-trick in 3–2 win overMontpellier.[1][23][31] In the same season, the team reached the2004 Coupe de la Ligue final, Moldovan being used as a starter by coachLoïc Amisse in the loss at the penalty shoot-out toSochaux in which he netted his spot kick.[1][32]
He returned to Switzerland when he signed withServette, making his debut for the team on 20 July 2004 as coachMarco Schällibaum used him the entire match in a 3–0 away loss toFC Thun.[1][2][31][33][34] Moldovan scored his first goal in a 1–1 draw againstSchaffhausen.[33] On 5 December 2004 he played his last game in the Swiss league when he also scored in Servette's 4–1 away win over Schaffhausen, totaling 96 matches with 66 goals in the competition.[1][33]
In 2005, Moldovan returned to Romania, signing withPolitehnica Timișoara, and coachCosmin Olăroiu gave him his debut on 11 March when he scored in the 3–0 victory againstCFR Cluj.[1][2][35][36] In the following game, he netted the victory goal from a penalty in the 2–1 win overNațional București.[35] For thenext season, coach Olăroiu named him the team's captain.[37] On 10 September 2005 he scored a brace in a 4–0 win over his former team Gloria Bistrița.[38]
In early 2006 he was transferred from Politehnica toRapid București.[1][2][39] Moldovan helped the club eliminateHamburg and reach the quarter-finals of the2005–06 UEFA Cup where he scored his side's only goal againstrivalsSteaua București as they were eliminated on theaway goal rule after a 1–1 on aggregate.[1][40] On 12 April 2006 he scored a brace in a 3–0 win in a derby against Dinamo București.[41] At the end of the season, the club won theCupa României, coachRăzvan Lucescu sending him in the 55th minute to replaceDaniel Pancu in the 1–0 victory against Național București in thefinal.[1][42]
Afterwards he wanted to retire but Lucescu convinced him to play for one moreseason.[43] He then netted a goal which helpedThe Railwaymen eliminateNacional and reach the group stage of the2006–07 UEFA Cup.[1][44] There, Moldovan would make his last four appearances in European competitions in which he accumulated a total of 43 matches and 19 goals scored.[1][44] He netted seven league goals during his last season of activity, including two doubles in victories againstFC Vaslui and Gloria Bistrița.[1][45] On 23 May 2007, Moldovan played his last game in the Romanian top-league which ended with a 4–0 loss to Național București, totaling 196 appearances with 55 goals in the competition.[1] He ended his career by winning anotherCupa României, this time coach Lucescu sending him in the 82nd minute to replaceIonuț Mazilu in Rapid's 2–0 victory against Politehnica Timișoara in thefinal.[1][46]
Moldovan played 70 matches and scored 25 goals forRomania, making his debut on 22 September 1993 at age 21 under coachAnghel Iordănescu in a 1–0 friendly win overIsrael.[47][48][49] He was selected by Iordănescu to be part of the1994 World Cup squad where the team reached the quarter-finals, but he did not play in any games from the campaign.[50] He scored his first goals for the national team on 24 April 1996, managing a hat-trick in a friendly that ended with a 5–0 victory againstGeorgia.[47]
Moldovan played in one game in the successfulEuro 1996 qualifiers, a 2–0 away win overSlovakia.[47] He was sent as a substitute by Iordănescu in the 1–0 losses toFrance andBulgaria during thefinal tournament, and the team also lost the game againstSpain, being unable to progress from their group.[47][51]
During the1998 World Cup qualifiers, he made eight appearances, scoring two goals in both victories againstLiechtenstein, two goals in both wins overLithuania and a brace in a 4–2 victory againstMacedonia.[47] Moldovan was used as a starter by Iordănescu in all four games in thefinal tournament.[47] In the group stage, Romania earned victories in the first two rounds againstColombia andEngland, Moldovan scoring once against the latter, thus securing mathematical qualification before the last group match againstTunisia.[52] To celebrate, the team dyed their hair blonde and showed up on the pitch with their new look, Moldovan netting his side's goal in the 1–1 draw against the Tunisians.[47][52] The campaign ended as they were defeated 1–0 byCroatia in the round of 16 afterDavor Šuker scored from a penalty.[47][53]
Moldovan played 10 games in theEuro 2000 qualifiers and scored one goal in a 7–0 win over Liechtenstein, his side's goal in the 1–1 draw againstrivalsHungary and a double in a 5–1 away victory against Slovakia.[47][54] CoachEmerich Jenei used him as a starter in all four matches during the final tournament, netting a goal in the 1–1 draw againstGermany in the group stage.[47][54] In the last group match, against England, he obtained a penalty in the 89th minute from whichIonel Ganea scored the victory goal in the 3–2 win that helpedThe Tricolours reach the quarter-finals.[47][54] Over there, the campaign ended as they lost 2–0 toItaly.[47][54]
In his final years with the national team, Moldovan played six games and netted once in a 2–1 victory against Lithuania during the2002 World Cup qualifiers.[47] He then played two matches in theEuro 2004 qualifiers, scoring a brace in a 7–0 win overLuxembourg.[47] His last two appearances were during theEuro 2004 qualifiers, the last one taking place on 30 March 2005 in a 2–1 away victory against Macedonia.[47]
For representing his country at four final tournaments, Moldovan was decorated by thenPresident of Romania,Traian Băsescu on 25 March 2008, with the Ordinul "Meritul Sportiv" – (The Medal of "Sportive Merit") Class III.[55]
After he ended his career, Moldovan started working as a sporting director forRapid București during the year 2007.[56] Afterwards he went to work forUnirea Urziceni in the same position until 2008.[57][58]
He started his coaching career when he replacedViorel Hizo atFC Vaslui in November 2008.[2][59][60] However, on 26 May 2009 he resigned from Vaslui after a 4–1 loss toGloria Buzău which lowered the team's chances of finishing on a place that would grant them participation in a European competition.[59][61] On 28 July 2009, the Italian coachNicolò Napoli quitFC Brașov and was replaced by Moldovan, who signed a two-year deal.[2][62] After a good start, the team eventually finished theseason in 9th place and he left the club.[63] In September 2010, Moldovan was named the coach ofSportul Studențesc but left the club in late October after not managing to earn a single victory in the league during this time.[2][64] From September 2013 until July 2014 he coached Rapid inLiga II, managing to earn promotion to thefirst league at the end of theseason.[2][65]
About two years later, on 26 June 2018 he was named coach of Liga II team,Chindia Târgoviște, managing to promote them to the first league at the end of theseason.[70][71] Because by the end of thefollowing season, Chindia was on a relegation place, Moldovan was dismissed by the club.[72] In August 2020, he returned to Liga II football, signing withPetrolul Ploiești, having as an objective to achieve promotion to the first league.[73] In March 2021 he resigned from Petrolul as the team was only in 10th place.[74]
In June 2024 Moldovan was appointed as president of Rapid, a position he held for exactly one year, leaving after the team finished the2024–25 Liga I season in fifth place.[75]