Драма разворачивается на фоне исторического восстания силезских ткачей 1844 года. В доме фабриканта Дрейсигера, владельца бумазейной фабрики в Петерсвальдау, рабочие приносят готовую ткань, которую принимает приёмщик Пфейфер, а кассир Нейман рассчитывается с ними. Ткачи, бедно одетые и изнурённые, выражают недовольство низкой оплатой труда и попытками фабриканта уменьшить выплаты за якобы бракованный товар, хотя сами поставляют низкокачественную основу. Единственный молодой ткач Беккер осмеливается открыто высказать своё возмущение и даже спорит с хозяином. Дрейсигер раздражён и в гневе выгоняет его, бросая деньги так, что часть монет падает на пол. Беккер настойчиво требует справедливости, и по распоряжению фабриканта мальчик-ученик собирает рассыпанные деньги и вручает их ткачу.

В очереди у приёмщика падает мальчик, потеряв сознание от голода. Дрейсигер негодует на родителей ребёнка, которые послали его с тяжёлой ношей, и приказывает не принимать товар у детей, дабы избежать ответственности в случае несчастного случая. Фабрикант оправдывается тем, что именно благодаря ему ткачи имеют возможность работать и зарабатывать, и угрожает прекратить производство, если те не будут покорны. Он обещает принять ещё двести ткачей, но при этом снижает расценки на готовую продукцию, что вызывает молчаливое возмущение среди рабочих.

Семья Баумертов, в которой больная жена, дочери и слабоумный сын постоянно трудятся у станков, снимает комнату у безземельного крестьянина Вильгельма Анзорге, который плетёт корзины после утраты работы ткача. Жильцы не платят за проживание уже полгода, и Анзорге рискует потерять дом из-за долгов. Соседка фрау Генрих, у которой много голодных детей, просит у Баумертов хоть немного муки или картофельных очисток, но те ничего не могут дать, надеясь на заработок главы семьи, который принесёт деньги после сдачи товара фабриканту. Роберт Баумерт приходит домой с Морицом Егером, отставным солдатом, который удивляется тяжёлому положению односельчан и вспоминает свои годы службы, считая их лучше нынешней жизни в городе.

На сковороде жарится мясо похищенной собаки, Егер ставит бутылку водки, и разговоры продолжаются о безысходности положения ткачей. Прежние времена казались более справедливыми, когда фабриканты заботились о работниках. Егер, умеющий читать и писать, обещает заступиться за ткачей перед хозяином. Он планирует устроить Дрейсигеру «праздник», договорившись с Беккером и его товарищами исполнить под окнами фабриканта песню «Кровавая баня», пронизанную отчаянием, болью и гневом, что производит сильное впечатление на слушателей.

В трактире Шольца Вельцеля хозяин удивляется оживлению в селе, а столяр Виганд объясняет, что сегодня день сдачи товара и одновременно проходят похороны одного из ткачей. Заезжий коммивояжёр не понимает, почему люди, погрязшие в долгах, устраивают роскошные похороны. Ткачи в трактире высказывают недовольство помещиками, крестьянами, берущими высокую плату за жильё, и правительством, игнорирующим их бедственное положение. В трактир врываются Егер, Беккер и молодые ткачи, которые начинают провоцировать жандарма Кутше, предупреждающего о запрете на исполнение подстрекательских песен. Вопреки запрету, молодёжь поёт «Кровавую баню».

В доме Дрейсигера хозяин извиняется за опоздание, но бунтарская песня снова звучит снаружи. Пастор Киттельгауз возмущён, что не только молодёжь, но и старые, уважаемые ткачи поддерживают бунт. Домашний учитель Вейнгольд защищает рабочих, объясняя их поведение голодом и невежеством. Дрейсигер угрожает уволить учителя и приказывает служащим схватить лидера протеста. Задержанным оказывается Мориц Егер, который ведёт себя вызывающе. Начальник полиции собирается посадить его в тюрьму, но вскоре становится известно, что толпа освободила Егора и избила жандармов.

Фабрикант в ярости, отмечая, что раньше ткачи были покорны, а теперь их взбудоражили проповедники гуманизма, внушившие им мысль о тяжёлом положении. Кучер сообщает, что лошади запряжены, мальчики с учителем готовы к бегству, если ситуация ухудшится. Пастор пытается поговорить с толпой, но на него не обращают внимания. Раздаётся стук в дверь и звуки разбитых окон. Дрейсигер отправляет жену в коляску и собирается покинуть дом, в который врывается разъярённая толпа, устраивающая погром.

В мастерской старика Гильзе в Билау вся семья занята работой. Старьёвщик Горниг приносит известие о разгроме дома и фабрики Дрейсигера в Петерсвальдау, устроенном ткачами из-за высокомерия хозяина, призывающего их питаться лебедой. Гильзе не верит, что рабочие могли на такое решиться. Его внучка возвращается с серебряной ложкой, найденной возле разрушенного дома, и спорит с женой, стоит ли сдавать её в полицию или продать на еду. Появляется врач Шмидт, сообщающий о прибытии полутора тысяч человек из Петерсвальдау и предупреждающий, что за восстанием последует вмешательство войск. Ткачи полны решимости прекратить страх и унижение.

Толпа громит фабрику Дитриха, разрушая механические станки, которые уничтожили ручной труд. Приходит известие о прибытии войск. Мориц Егер берёт на себя руководство восставшими и призывает к сопротивлению, но у рабочих есть лишь камни, в ответ звучат ружейные залпы.

Старик Гильзе сохраняет своё мнение, что восстание бессмысленно, и намерен продолжать работу несмотря ни на что. Он погибает от случайного выстрела, падая на ткацкий станок.