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, having a total of 96 matches with 66 goals netted 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, having a total of 196 appearances with 55 goals scored 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]