Flexible manufacturing systems (FMSs), which can easily adapt to changes in product types and quantities, have been widely used in manufacturing areas, and they mostly consist of multiple machines and material handling robots. Scheduling of FMSs is extremely hard because different types of jobs are produced at the same time and deadlocks caused from robots can frequently occur. Branch and bound is one of the optimization methods which branches possible cases sequentially and prunes nodes by calculating the dominance rule and lower bound. Therefore, we propose a branch and bound (B&B) algorithm based on a timed Petri net (TPN) to find an optimal solution for the FMS scheduling problem. A TPN is first provided for the FMS, and deadlock avoidance rules are proposed. Also, tight lower bounds based on bottleneck machines and dominant marking state rules are developed. The experimental results show that the proposed algorithm can efficiently solve the various FMS problems