Bhopal - who had two wins, a draw and a loss so far - scored through Karan Bhaskaran (14th minute) and AB Cheeyanna (49th) to move to the top of the points table after pocketing three points.
Delhi, who have so far won two matches and lost two, could manage only a solitary goal through Vikramjeet Singh (33rd) in the second quarter.
Karan Bhaskaran put Bhopal ahead when he converted a penalty corner in the 14th minute as Delhi goalkeeper Kamaldeep Singh failed to came down in time.
Two minutes off the second quarter, Vikramjeet Singh brought up the equaliser when he found the back of the net with a flick off one of the penalty corners to go into the break 1-1.
In the third quarter, Delhi could have surged ahead but they failed to convert a short corner which they gained just nine minutes off the hooter.
Egged on by the home crowd, the Badshahs finally broke the deadlock when skipper Sameer Dad and Cheeyanna joined hands, with the latter slotting home in the 49th minute.
In fact, Bhopal could have extended their lead in the 63rd minute when another penalty corner went abegging.
The hosts earned another short corner in the 68th minute, but once again they squandered the opportunity. But this didn't have any bearing on the result as the Badshahs successfully defended the Delhi attack in the dying minutes.
Bhopal will now take on Sher-E-Punjab at the same venue on Saturday, while Delhi will be up against Mumbai Marines in Mumbai on Sunday.
Pune Strykers hold Chennai Cheetahs 3-3
In Chennai, a penalty-corner conversion six minutes from time by Simrandeep Randhava helped Pune Strykers snatch a 3-3 draw with hosts Chennai Cheetahs on Friday.
On Thursday, Mumbai Marines defeated Karnataka Lions 2-1 in Bangalore on Thursday while in Chandigarh, local favourites Chandigarh Comets registered only their second win, beating Sher-e-Punjab 3-1 in a keenly contested match on Thursday.
Today's Matches (March 10)
7.00 pm Chennai Cheetahs vs Karnataka Lions (Chennai)
9.00 pm Bhopal Badshahs vs Sher-e-Punjab (Bhopal)