After folding for a humiliating 66 in the first innings, Haryana scored 300 in their second innings, courtesy good batting by their lower-middle order.
Chasing 148 for an outright win, Odisha ended the day at 60 for three with Govind Podder (19) at the crease.
Resuming at 165 for six, Haryana added 155 more runs in the day as Yadav scored 66 runs and shared a superb 72-runs stand for the ninth wicket with Mohit Sharma (28).
Their partnership and a useful cameo by Chanderpal Saini (15) gave Haryana bowlers something to fight for.
Haryana lost Abhimanyu Khod (74), who added 18 runs to his overnight total, in the first session of the day. Yadav though continued to fight from the other end and was the last man out.
Yadav's 66 came off 148 balls as he batted for three hours and 37 minutes. He helped himself with four boundaries.
Continuing with the fighting spirit, Haryana bowlers then did a good job by knocking out three top-order batsmen.
Mohit Sharma drew the first blood when he had opener and rival skipper Natraj Behera (17) caught by Rahul Dewan.
Chanderpal Saini then trapped the other opener Sandeep Mulia (12) to put pressure on the visitors.
Jayant Yadav dismissed Biplab Samantray (8) in his first over in the fag end to end the day on a high for the hosts.
Haryana 66 and 300 all out in 129.2 overs. (A Khod 74, J Yadav 66; B Mohanty 4/57)
Odisha 219 and 60 for 3 in 24.3 overs. (G Podder 19 batting; J Yadav 1/4).