After the break containing seven riders was neutralised, the 24-year-old AG2R rider attacked before the col d'Allos summit and consolidated his lead on the descent, riding alone over the final 22km as he took victory by 36 seconds.
He held a 1min 25sec lead at the foot of the final climb on Pra Loup, 6km from the finish before fading slightly as the other leaders closed the gap.
"I told myself I'd attack and when I saw that no one was following in the downhill I tried to increase the gap," Bardet said.
"I don't feel like I've taken any risk, I even think I rode cautiously, knowing that it was my first time on that road. I paid attention to my trajectories. When I realized that I had more than a minute lead, I knew it was enough to manage and keep something over six kilometers.
"I didn't have the yellow-blue jersey in mind but only the stage victory. Towards the end, I had the feeling it was never ending. It's fantastic to win a mountain stage of that importance, ahead of the favourites of the Tour de France.
"It was the right strategy. Now that I know that I can win this kind of race, I can raise the bar a bit higher. I'm third on GC now with three difficult stages to go. I'll try to do better than last year (5th) and I'll keep attacking."
Assisted by Australian team-mate and former race leader Rohan Dennis, it was a good day for BMC's Van Garderen who finished second to take the leader's yellow jersey, with 2013 Tour de France champion Chris Froome finishing third on the day. Dennis was dropped from the peloton four kilometers before the col d'Allos after providing service for his team leader.
"At first, I did not want to follow him (Froome) out of fear I would go into the red," van Garderen said. "So I kept him at a reasonable distance and stayed within myself.
"It looked like he kind of died at the end, so I was able to get the jump on him. It kind of surprised me. I thought he was going to start riding away.
The route was a mountainous 161km ride from Digne-les-Bains to Pra Loup in the French Alps, and Bardet's performance will stand him in good stead ahead of next month, with the stage set to be replicated in the Tour de France.
Bardet, who finished sixth in the general classification at last year's Tour de France, had enough in the tank to hang on for his first victory of the season ahead of Van Garderen, who overtook Froome in the final 2km.
Defending Tour de France champion Vincenzo Nibali and former Vuelta winner Alejandro Valverde were among those dropped on the final ascent.
Van Garderen, fifth in the Tour de France last year, now leads Movistar's Benat Intxausti by 18sec with Bardet's stage win taking him up to third overall at 20sec. Michele Scarponi lies fourth at 31sec with Froome completing the top five at 41sec.
"I think everyone kind of wants to strut their stuff a little bit before July and I think I showed I am right up there with them," van Garderen said. "Everyone has their different methods. You can never read too much into the Dauphiné as far as what their form is going to be in the Tour. But I definitely take some satisfaction and confidence out of today."
Friday's stage six is another mountainous 183km route from Saint-Bonnet-en-Champsaur to Villard-de-Lans.
Stage 5: 161km, Digne-les-Bains - Pra-Loup
1 Romain Bardet (FRA) AG2R 4hr 31min 22sec
2 Tejay Van Garderen (USA) BMC 0:00:36
3 Christopher Froome (GBR) Sky 0:00:40
4 Benat Intxausti (ESP) Movistar 0:00:42
5 Simon Yates (GBR) Orica-GreenEDGE 0:00:50
6 Louis Meintjes (RSA) MTN-Qhubeka
7 Andrew Talansky (USA) Cannondale-Garmin 0:00:55
8 Michele Scarponi (ITA) Astana 0:00:57
9 Pierre Rolland (FRA) Europcar
10 Mathias Frank (SUI) IAM
1 Tejay Van Garderen (USA) BMC 18hr 3min 22sec
2 Benat Intxausti (ESP) Movistar 0:00:17
3 Romain Bardet (FRA) AG2R 0:00:20
4 Michele Scarponi (ITA) Astana 0:00:31
5 Christopher Froome (GBR) Team 0:00:41
6 Simon Yates (GBR) Orica-GreenEDGE 0:00:43
7 Andrew Talansky (USA) Cannondale-Garmin 0:01:08
8 Daniel Martin (IRL) Cannondale-Garmin 0:01:16
9 Mathias Frank (SUI) IAM 0:01:17
10 Nicolas Roche (IRL) Sky 0:01:25