Chasing 196 for victory at the KSCA (3) ground, Gujarat rode on opener Parthiv's strokeful 57 to achieve the target in 48.1 overs.
The visitors did see wickets tumble as left-arm medium Ravikumar Thakur and off-spinner Akshay Wakhare bagged three each, but Axar stayed firm with Harshal Patel (15 not out) to ensure victory.
Earlier, electing to bat, Vidarbha started off well with fifties from opener Faiz Fazal (52) and Jitesh Sharma (51), but soon their innings ran into rough weather.
After a 96-run opening stand, one-down Ganesh Satish also contributed with a useful 47 but the rest of the batting folded like a deck of cards.
Sharing the new ball with Rush Kalaria, Jusprit Bumrah bagged four wickets, while off-spinner Rujul Bhatt and man of the match Axar chipped in with two wickets each.
Gujarat will take on Tamil Nadu, who edged past Uttar Pradesh by one wicket in the other quarter-final in Bengaluru, in second the semi-final at Alur on December 26.
Brief Scores:
Vidarbha 195 in 48 overs (Faiz Fazal 52, Jitesh Sharma 51, Ganesh Satish 47; Jasprit Bumrah 4-38) vs Gujarat 198-8 in 48.1 overs (Parthiv Patel 57, Axar Patel 36 not out; Rujul Thakur 3-46, Akshay Wakhare 3-30).
TN beat UP by 1 wkt after Satish’s unbeaten 34
Rajagopal Sathish's unbeaten 34 helped Tamil Nadu score an exciting one-wicket victory over Uttar Pradesh in another quarter-final, at the M Chinnaswamy stadium, in Bengaluru.
Chasing 169 for victory, Sathish stood tall amid the ruins with a 38-ball cameo that comprised six boundaries.
He came in to bat when the score was 118 for six, and Tamil Nadu needing 71 runs to reach the last four.
Baba Indrajith also played a big hand in Tamil Nadu’s chase before being run-out for 48 off 78 balls.
Tamil Nadu will play Gujarat -- who beat Vidarbha by two wickets in the day's other quarter-final in Alur, Karnataka -- in Saturday's semi-finals.
Tamil Nadu began their innings in poor fashion, losing Dinesh Karthik (0), Abhinav Mukund (2), Baba Aparajith (9) and L Balaji (0) with just 17 on the board.
India discard pacer Praveen Kumar tasted first blood by removing Karthik and then Bhuvaneshwar Kumar sent back Mukund, Aparajith and Balaji in quick succession.
However, Vijay Shankar (22) and in-form India opener Murali Vijay (33) stabilised the innings and brought Tamil Nadu within sniffing distance of the victory target.
They put on a 64-run partnership for the fifth wicket before Vijay was trapped leg before by Saurabh Kumar.
Later, Sathish stitched vital 37 and 35-run stands for the sixth and eighth wicket with Indrajith and Ravichandran Ashwin (7), which made the difference in the end.
India seamer Bhuvaneshwar and leggie Piyush Chawla scalped three wickets each, while Praveen Kumar and Saurabh Kumar bagged one each, but could not prevent Tamil Nadu from pulling off a thrilling victory.
Opting to bat, Uttar Pradesh were dismissed for 168 in 48.2 overs, Rinku Singh being the top-scorer with a 97-ball 60.
They too had a bad start as half of the team was back in the pavilion with the score reading 41.
Chawla was the second highest scorer with 29 even as seven other batsmen could not reach double digits.
Balaji was Tamil Nadu’s most successful bowler, scalping Shubham Chaubey (6), Saurabh Kumar (3) and Akshdeep Nath (13).
Sathish, who bagged a wicket and scored a match-winning knock, was declared man-of-the-match.
Brief Scores:
Uttar Pradesh 168 in 48.2 overs (Rinku Singh 60, L Balaji 3-32) vs Tamil Nadu 169-9 in 41.3 overs (Baba Indrajith 48, Rajagopal Sathish 34 not out; Bhuvneshwar Kumar 3-25, Piyush Chawla 3-35).
Image: Parthiv Patel
Ranji: Herwadkar, Yadav tons put Mumbai in command
Hazare Trophy: Champs Karnataka win by 207 runs but knocked out
Hazare Trophy: Uttar Pradesh beat Saurashtra by 5 wickets
India closing in on Westinghouse deal to build 6 nuclear reactors
Ranji: Herwadkar, Iyer steer Mumbai to 6-wkt win over Railways