Scheduling with multiple competing agents has drawn considerable attention lately. However, most traditional studies have focused on two-agent scheduling only. In this study, we consider a single-machine three-agent scheduling problem. The objective is to minimize the makespan of jobs from agent 1 given that the maximum tardiness of jobs from agent 2 cannot exceed a limit and that a maintenance activity from agent 3 must be completed within a specified maintenance window. Several dominance rules and a lower bound based on job preemption are proposed. A branch-and-bound algorithm and a genetic algorithm are proposed to obtain optimal and approximate solutions, respectively. Experimental results show that the dominance rules and lower bound can eliminate the unnecessary nodes and improve the execution time greatly.