BFS finds shortest paths only when every edge costs the same. Dijkstra handles weighted edges, like road distances or network delays, by always expanding the closest unsettled vertex with a min-heap. Use it for single-source shortest paths when all weights are non-negative. With negative weights it can give wrong answers, so use Bellman-Ford there.